Schaltflächenfunktionsarrays

Ein Schaltflächenfunktionsarray enthält Informationen zu den Schaltflächennutzungen, die von einer Sammlung der obersten Ebene für einen bestimmten Typ von HID-Bericht unterstützt werden. Informationen zur Funktion einer Sammlung sind in der HIDP_CAPS-Struktur enthalten.

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

  • HidP_GetButtonCaps gibt ein Schaltflächenfunktionsarray zurück, das alle In einem angegebenen Berichtstyp enthaltenen Schaltflächenverwendungen beschreibt.

  • HidP_GetSpecificButtonCaps filtert die Schaltflächenfunktionsinformationen, die durch eine vom Aufrufer angegebene Nutzungsseite, die Nutzungs-ID und die Linksammlung zurückgegeben werden.

Ein Schaltflächenfunktionsarray enthält HIDP_BUTTON_CAPS Strukturen, von denen jede die folgenden Informationen über eine HID-Verwendung oder einen VERWENDUNGsbereich enthält:

  • Die Nutzungsseite für die Nutzung oder den Nutzungsbereich

  • Die Berichts-ID des Berichts, der die Schaltflächendaten enthält

  • Die Nutzungs-ID oder der Nutzungsbereich

  • Ein Flag, das angibt, ob es sich bei einer Verwendung um eine Aliasverwendung handelt.

  • Die Linkauflistung, die die Verwendung oder den Nutzungsbereich enthält

  • Die Zeichenfolgenbeschreibungen und -bezeichner, die der Verwendung oder dem Nutzungsbereich zugeordnet sind (siehe Designatorindexelement und Zeichenfolgenindexelement)

  • Die Datenindizes , die der HID-Parser der Verwendung oder dem Nutzungsbereich zugewiesen hat

Im Allgemeinen gelten die folgenden Bedingungen für alle Verwendungen, die von einem Schaltflächenfunktionsarray beschrieben werden:

  • Jede Funktionsstruktur stellt einen einzelnen Nutzungs- oder Nutzungsbereich dar, der einer Variablen Standard Element oder einem Array Standard Elements zugeordnet ist.

  • Aliasverwendungen können mit einer Variablen Standard Elements verwendet werden. Eine Verwendung, die einem Arrayelement zugeordnet ist, kann nicht aliasiert werden. Ein Nutzungsbereich kann nicht aliasiert werden.

  • Der HID-Parser verwendet nur die mindest erforderliche Anzahl von Verwendungen, um jeder Schaltfläche eine Verwendung zuzuweisen. Der Parser weist Verwendungen in der Reihenfolge zu, in der sie in einem Berichtsdeskriptor angegeben werden. Nicht erforderliche Verwendungen in einem Berichtsdeskriptor werden verworfen. Das Schaltflächenfunktionsarray enthält keine Informationen zu verworfenen Verwendungen.

  • Wenn die für ein Variablenelement angegebene Anzahl von Verwendungen kleiner ist als die Anzahl der Schaltflächen im Element, enthält das Funktionsarray nur eine Funktionsstruktur, die eine Schaltflächennutzung beschreibt (die letzte im Berichtsdeskriptor für die Variable Standard Element angegebene Verwendung). Informationen zu Nutzungswerten, die eine Berichtsanzahl größer als eins aufweisen, finden Sie jedoch unter Usage Value Array .

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

In den folgenden Themen wird erläutert, wie die Funktionsstrukturen organisiert und in einem Schaltflächenfunktionsarray festgelegt werden:

Schaltflächenverwendungen in einer Variablen Standard Element

Jeder In einem Berichtsdeskriptor angegebene Nutzungs- oder Nutzungsbereich wird durch eine eigene Funktionsstruktur in einem Schaltflächenfunktionsarray beschrieben.

Das IsAlias-Element von Funktionsstrukturen wird verwendet, um einen Satz von n Aliasverwendungen wie folgt anzugeben:

  • IsAlias wird in den ersten n-1-Funktionsstrukturen, die dem Funktionsarray hinzugefügt wurden, auf TRUE festgelegt. IsAlias wird in der n-tenFunktionsstruktur auf FALSE festgelegt. Die bevorzugte Verwendung ist die letzte Aliasverwendung in der Sequenz.

Eine Anwendung oder ein Treiber kann ermitteln, welche Schaltflächenverwendungen aliasisiert werden, indem sie nach solchen Sequenzen sucht.

In der folgenden Tabelle ist ein Beispiel für drei Aliasverwendungen zusammengefasst.

Aliasverwendungsreihenfolge in einem Berichtsdeskriptor Verwendungsreihenfolge in einem Funktionsarray IsAlias-Memberwert
Nutzung 1 Verwendung 3 TRUE
Verwendung 2 Verwendung 2 TRUE
Verwendung 3 Nutzung 1 FALSE

Informationen dazu, wie Nutzungen und Datenindizes querverweiset werden, finden Sie unter Datenindizes.

Schaltflächenverwendungen in einem Array Standard Element

Jeder Nutzungs- oder Nutzungsbereich für ein Schaltflächenarray Standard element, das in einem Berichtsdeskriptor angegeben ist, wird durch eine eigene Funktionsstruktur in einem Schaltflächenfunktionsarray beschrieben. Die Reihenfolge, in der die Funktionsstrukturen einem Funktionsarray hinzugefügt werden, ist die umgekehrte Reihenfolge, in der die Verwendungen für ein Standard-Element angegeben werden.

Der HID-Parser weist jeder dem Arrayelement zugeordneten Verwendung einen Datenindex in der Reihenfolge zu, in der die Verwendungen in einem Berichtsdeskriptor angegeben werden. Die folgende Tabelle zeigt beispielsweise die Übereinstimmung zwischen einer Reihe von Verwendungen, wie in einem Berichtsdeskriptor angegeben, und den Im Funktionsarray angegebenen Nutzungen und Datenindizes. (In dieser Tabelle ist n der erste Datenindex, den der Parser der ersten Verwendung zuweist, die dem Arrayelement zugeordnet ist.)

Verwendungsreihenfolge im Berichtsdeskriptor Verwendungsreihenfolge im Funktionsarray DataIndex oder von DataIndexMin zu DataIndexMax
Nutzung 1 Nutzungsbereich 2 von n+7 bis n+8
Nutzungsbereich 1 (mit 4 Nutzungen) Verwendung 2 n+5
Verwendung 2 Nutzungsbereich 1 von n+1 bis n+4
Nutzungsbereich 2 (mit 2 Nutzungen) Nutzung 1 n