Wertefunktionsarrays

Ein Wertfunktionsarray enthält Informationen zu den Wertverwendungen, die von einer Sammlung auf oberster Ebene für einen bestimmten Typ von HID-Bericht unterstützt werden. Informationen zu den Wertfunktionsarrays einer Sammlung sind in der HIDP_CAPS-Struktur enthalten.

Eine Benutzermodusanwendung oder ein Kernelmodustreiber verwendet eine der folgenden HIDClass-Unterstützungsroutinen, um Schaltflächenfunktionsinformationen abzurufen:

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

  • HidP_GetSpecificValueCaps filtert die informationen zur Wertfunktion, die sie nach einer vom Aufrufer angegebenen Nutzungsseite, verwendung, Linksammlung und Berichtstyp zurückgibt.

Ein Wertfunktionsarray enthält HIDP_VALUE_CAPS Strukturen, von denen jede die folgenden Informationen über eine HID-Verwendung oder einen VERWENDUNGsbereich beschreibt:

  • Die Nutzungsseite für einen Nutzungsbereich oder einen Nutzungsbereich

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

  • Eine Nutzungs-ID oder ein Nutzungsbereich

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

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

  • Die Größe eines Werts in Bits und die Berichtsanzahl (die Anzahl einzelner Werte, die von der -Struktur beschrieben werden)

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

  • Informationen zu Zeichenfolgendeskriptoren und -bezeichnern, die der Verwendung oder dem Nutzungsbereich zugeordnet sind

  • Informationen zu den Datenindizes , die der HID-Parser einer Verwendung oder einem Nutzungsbereich zuweist

Im Allgemeinen gelten die folgenden Bedingungen für alle Von einem Wertfunktionsarray beschriebenen Verwendungen:

  • Jede Funktionsstruktur stellt eine Verwendung, einen Nutzungsbereich oder ein Nutzungswertarray dar, das einer Variablen Standard Element zugeordnet ist. Array-Standard-Elemente werden für Werte nicht unterstützt.

  • Aliasverwendungen können verwendet werden. Ein Verwendungsbereich kann nicht als Alias verwendet werden. Aliaswerte werden in einem Wertfunktionsarray auf die gleiche Weise wie aliasierte Schaltflächen wie in einem Schaltflächenfunktionsarray miteinander verknüpft. Weitere Informationen finden Sie unter 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, die nicht erforderlich sind, werden verworfen. Das Wertfunktionsarray 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.

Verwendungswertarray

Ein Verwendungswertarray ist ein aufeinanderfolgender Satz von Werten, die in einem Standard Element angegeben sind, denen alle die gleiche Verwendung zugewiesen sind. Dies tritt auf, wenn nur eine Verwendung für ein Standard Element angegeben wird, dessen Berichtsanzahl größer als eins ist.

Die folgende Abbildung zeigt ein Beispiel für ein Verwendungswertarray, das fünf Datenelemente mit jeweils sechs Bits enthält.

Diagramm zur Veranschaulichung eines Verwendungswertarrays, das fünf Datenelemente mit jeweils 6 Bit länge enthält.

Im vorherigen Beispiel wurde für die Wertfunktionsstruktur für ein solches Nutzungswertarray das IsRange-Element auf FALSE, das NotRange.Usage-Element auf 17, das ReportCount-Element auf 5 und das BitSize-Element auf 6 festgelegt.

Wenn die Berichtsanzahl für eine Verwendung 1 ist, verwenden Sie HidP_GetUsageValue , um den Nutzungswert zu extrahieren. Wenn die Berichtsanzahl der Nutzung 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.