HID-rapporten interpreteren

In dit artikel wordt beschreven hoe gebruikersmodustoepassingen en kernelmodusstuurprogramma's de HidP_XxxHIDClass-ondersteuningsroutines gebruiken om controlegegevens in een HID-rapport te interpreteren.

Waardegegevens extraheren door het gebruik ervan op te geven

Als u waardegegevens wilt extraheren uit een HID-rapport, kan een toepassing of stuurprogramma een van de volgende HID-ondersteuningsroutines gebruiken:

Als u toepassingen en stuurprogramma's met HidP_GetUsageValueArray wilt gebruiken, moet u een nulgeïnitieerde buffer toewijzen die groot genoeg is om de gebruikswaardearray te bevatten. De vereiste grootte in bytes is het product van de BitSize - en ReportCount-leden van de HIDP_VALUE_CAPS structuur van de gebruikswaardematrix, afgerond op de dichtstbijzijnde byte.

Knopgebruik extraheren die zijn ingesteld op AAN

Als u het HID-gebruik van knoppen wilt extraheren die zijn ingesteld op AAN (1), roepen toepassingen en stuurprogramma's een van de volgende HID-ondersteuningsroutines aan:

Deze routines retourneren een matrix met alle gebruiksgegevens voor alle knoppen die momenteel zijn ingesteld op AAN. Impliciet worden knoppen waarvan het gebruik niet wordt geretourneerd door deze routines ingesteld op UIT (nul).

Als u deze routines wilt aanroepen, moeten toepassingen en stuurprogramma's eerst de buffer toewijzen en initialiseren die wordt gebruikt om de matrix met knopgebruiken te retourneren. Een toepassing of stuurprogramma roept HidP_MaxUsageListLength aan om het aantal knopgebruiken op een opgegeven gebruikspagina in het rapport te bepalen. Als de toepassing of het stuurprogramma een gebruikspagina van nul opgeeft, retourneert de routine het aantal knopgebruiken in het rapport.

De vereiste buffergrootte, in bytes, is:

  • (Voor HidP_GetButtons) De waarde die wordt geretourneerd door HidP_MaxUsageListLength times sizeof(USAGE)
  • (Voor HidP_GetButtonsEx) De waarde die wordt geretourneerd door HidP_MaxUsageListLength vermenigvuldigd met sizeof(USAGE_AND_PAGE)

Nadat een toepassing of stuurprogramma deze routines gebruikt om informatie te verkrijgen over welke knoppen momenteel zijn ingesteld op AAN, kan het het verschil tussen de huidige status en de vorige status van de knoppen bepalen door een van de volgende HIDClass-ondersteuningsroutines aan te roepen. Deze routines retourneren het verschil tussen twee matrices met gebruiksgegevens:

Waardegegevens instellen door het gebruik ervan op te geven

Een toepassing of stuurprogramma kan een waarde instellen in een correct geïnitialiseerd HID-rapport door een van de volgende HID-ondersteuningsroutines aan te roepen:

Knopstatus instellen door het gebruik ervan op te geven

Een toepassing of stuurprogramma kan de status van knoppen in een correct geïnitialiseerd HID-rapport instellen door een van de volgende HIDClass-ondersteuningsroutines aan te roepen:

Gegevens extraheren en instellen door middel van gegevensindexen

Als u gegevensindexen wilt gebruiken om controlegegevens in een HID-rapport te extraheren en in te stellen, kan een toepassing of stuurprogramma de volgende HIDClass-ondersteuningsroutines gebruiken:

Deze routines zijn handig voor een toepassing of stuurprogramma dat een 'waarde-toegevoegde' service biedt. Bijvoorbeeld, een component dat een aangepaste interface biedt voor alle besturingselementen die worden ondersteund door een HIDClass-apparaat. Microsoft DirectInput is één voorbeeld.

Een toepassing of stuurprogramma die deze routines aanroept, kan alle waarden in een rapport het meest efficiënt verkrijgen en instellen. Als u bijvoorbeeld alle waardegegevens wilt ophalen op basis van hun HID-gebruik, moet u HidP_GetUsageValue aanroepen voor elk gebruik. Als u echter alle waardegegevens per gegevensindex wilt ophalen, hoeft deze slechts één keer HidP_GetData aan te roepen.

Een toepassing of stuurprogramma maakt gebruik van de gegevensindexen die zijn opgegeven in de Button Capability Arrays en Value Capability Arrays van een verzameling om HID-gebruik te identificeren.

Zie ook