Freigeben über


Wertefunktionsarrays

Ein Wertekapazitätsarray enthält Informationen über die von einer obersten Sammlungsebene unterstützten Werteverwendungen für einen bestimmten Typ von HID-Bericht. Informationen über die Wertfähigkeitsarrays einer Sammlung sind in der HIDP_CAPS Struktur enthalten.

Eine Benutzermodusanwendung oder ein Kernelmodustreiber verwendet eine der folgenden HIDClass-Supportroutinen , um Informationen zur Schaltflächenfunktion abzurufen:

  • HidP_GetValueCaps gibt ein Wertefunktionsarray zurück, das alle Werte beschreibt, die in einem vom Aufrufer angegebenen Berichtstyp enthalten sind.

  • HidP_GetSpecificValueCaps filtert die Wertfunktionsinformationen, die von einer aufrufer angegebenen Verwendungsseite, Verwendungsseite, Linksammlung und Berichtstyp zurückgegeben werden.

Ein Wertefähigkeitsarray enthält HIDP_VALUE_CAPS-Strukturen, von denen jede die folgenden Informationen zu einer HID-Nutzung oder einem Nutzungsbereich beschreibt:

  • Die Verwendungsseite für einen Verwendungs- oder Verwendungsbereich

  • Die Berichts-ID des Berichts, der den Wert enthält

  • Eine Verwendungs-ID oder ein Verwendungsbereich

  • Gibt an, ob es sich bei einer Verwendung um eine aliasierte Verwendung handelt.

  • Informationen zur Linksammlung, die die Nutzung enthält oder den Nutzungsbereich enthält

  • Die Größe eines Werts in Bits und die Berichtsanzahl (dies ist die Anzahl einzelner Werte, die durch die Struktur beschrieben werden)

  • Attribute jedes Werts, einschließlich: ob er einen NULL-Wert, seine Einheiten und exponent sowie seine logischen und physischen Bereiche hat

  • Informationen zu Zeichenfolgendeskriptoren und Bezeichnern, die der Verwendung oder dem Verwendungsbereich zugeordnet sind

  • Informationen zu den Datenindizes , denen der HID-Parser einen Verwendungs- oder Verwendungsbereich zuweist

Im Allgemeinen halten die folgenden Bedingungen für alle Verwendungen, die durch ein Wertekapazitätsarray beschrieben werden:

  • Jede Funktionsstruktur stellt eine Verwendung, einen Verwendungsbereich oder ein Verwendungswertarray dar, das einem variablen Hauptelement zugeordnet ist. Array-Hauptelemente werden für Werte nicht unterstützt.

  • Aliasverwendungen können verwendet werden. Ein Verwendungsbereich kann nicht aliasiert werden. Aliaswerte werden in einem Wertfähigkeitsarray auf die gleiche Weise miteinander verknüpft wie aliasierte Schaltflächen in einem Schaltflächenfähigkeitsarray. Siehe Schaltflächenverwendungen in einem variablen Hauptelement.

  • Der HID-Parser verwendet nur die minimal erforderlichen Verwendungen, um jedem Wert eine Verwendung zuzuweisen. Der Parser weist Verwendungen in der Reihenfolge zu, in der sie in einem Berichtsdeskriptor angegeben sind. Verwendungen in einem Berichtsdeskriptor, der nicht erforderlich ist, werden verworfen. Das Wertfähigkeitsarray enthält keine Informationen zu verworfenen Verwendungen.

  • Der HID-Parser weist jeder im Funktionsarray beschriebenen Verwendung einen eindeutigen Datenindex zu.

Eine Beschreibung der Zuweisung von Datenindizes zu Werten finden Sie unter "Datenindizes".

Verwendungswert-Array

Ein Verwendungswertarray ist eine aufeinander folgende Gruppe von Werten, die in einem Hauptelement angegeben sind und denen alle dieselbe Verwendung zugewiesen sind. Dies tritt auf, wenn nur eine Verwendung für ein Hauptelement angegeben wird, dessen Berichtsanzahl größer als eins ist.

Die folgende Abbildung zeigt ein Beispiel für ein Verwendungswertarray mit fünf Datenelementen, die jeweils sechs Bit lang sind.

Diagramm, das ein Verwendungswertarray veranschaulicht, das fünf Datenelemente enthält, jeweils 6 Bits lang.

Im vorherigen Beispiel hätte die Wertfähigkeitsstruktur für ein solches Verwendungswertarray ihr IsRange-Mitglied auf FALSE gesetzt, ihr NotRange.Usage-Mitglied auf 17, ihr ReportCount-Mitglied auf 5 und ihr BitSize-Mitglied auf 6.

Wenn die Berichtsanzahl für eine Verwendung 1 ist, verwenden Sie HidP_GetUsageValue , um den Verwendungswert zu extrahieren. Wenn die Anzahl der Nutzungsberichte größer als 1 ist, gibt HidP_GetUsageValue nur das erste Datenelement in einem Nutzungswertarray zurück. Verwenden Sie HidP_GetUsageValueArray, um alle Datenelemente in einem Verwendungswertarray zu extrahieren.