Interpretieren von HID-Berichten
Dieser Artikel beschreibt, wie Benutzermodusanwendungen und Kernelmodustreiber die HidP_XxxHIDClass-Unterstützungsroutinen verwenden, um Steuerelementdaten in einem HID-Bericht zu interpretieren.
Extrahieren von Wertdaten durch Angeben der Verwendung
Um Wertdaten aus einem HID-Bericht zu extrahieren, kann eine Anwendung oder ein Treiber eine der folgenden HID-Supportroutinen verwenden:
- HidP_GetScaledUsageValue Gibt einen signierten und skalierten Wert zurück.
- HidP_GetUsageValue Gibt einen nicht skalierten Wert in einem nicht signierten Format oder einem skalierten Wert zurück, der sich außerhalb des normalen Bereichs befindet.
- HidP_GetUsageValueArray Gibt ein Wertarray zur Verwendung zurück.
Um HidP_GetUsageValueArray-Anwendungen zu verwenden, müssen Anwendungen und Treiber einen mit Null initialisierten Puffer zuordnen, der groß genug ist, um das Wertarray für die Verwendung aufzunehmen. Die erforderliche Größe in Byte ist das Produkt der BitSize- und ReportCount-Mitglieder der HIDP_VALUE_CAPS-Struktur des Wertarrays der Verwendung, aufgerundet auf das nächste Byte.
Extrahieren von Schaltflächenverwendungen, die auf EIN festgelegt sind
Um die HID-Verwendungen von Schaltflächen zu extrahieren, die auf EIN (1) eingestellt sind, rufen Anwendungen und Treiber eine der folgenden HID-Supportroutinen auf:
- HidP_GetButtons (oder HidP_GetUsages) Gibt die Verwendungs-ID aller Schaltflächen auf einer angegebenen Verwendungsseite zurück, die auf EIN festgelegt ist.
- HidP_GetButtonsEx (oder HidP_GetUsagesEx) Gibt die Verwendungsseite und die Verwendungs-ID aller Schaltflächen zurück, die auf EIN festgelegt sind.
Diese Routinen geben ein Array mit allen Verwendungsinformationen für alle Schaltflächen zurück, die aktuell auf EIN eingestellt sind. Implizit werden Schaltflächen, deren Verwendung von diesen Routinen nicht zurückgegeben wird, auf AUS (Null) gesetzt.
Um diese Routinen aufzurufen, müssen Anwendungen und Treiber zuerst den Puffer zuordnen und auf Null initialisieren, der zum Zurückgeben des Arrays der Schaltflächenverwendungen verwendet wird. Eine Anwendung oder ein Treiber ruft HidP_MaxUsageListLength auf, um die Anzahl der Schaltflächennutzungen auf einer angegebenen Verwendungsseite im Bericht zu ermitteln. Wenn die Anwendung oder der Treiber eine Verwendungsseite von Null angibt, gibt die Routine die Anzahl aller Schaltflächenverwendungen im Bericht zurück.
Die erforderliche Puffergröße in Byte beträgt:
- (Für HidP_GetButtons) Der von HidP_MaxUsageListLength times sizeof(USAGE) zurückgegebene Wert
- (Für HidP_GetButtonsEx) Der von HidP_MaxUsageListLength times sizeof(USAGE_AND_PAGE) zurückgegebene Wert
Nachdem eine Anwendung oder ein Treiber diese Routinen verwendet hat, um Informationen darüber zu erhalten, welche Schaltflächen derzeit auf EIN festgelegt sind, kann er den Unterschied zwischen dem aktuellen Zustand und dem vorherigen Zustand der Schaltflächen bestimmen, indem eine der folgenden HIDClass-Supportroutinen aufgerufen wird. Diese Routinen geben den Unterschied zwischen zwei Arrays von Verwendungsinformationen zurück:
Extrahieren und Festlegen von Steuerelementdaten nach Datenindizes
Um Datenindizes zum Extrahieren und Festlegen von Steuerelementdaten in einem HID-Bericht zu verwenden, kann eine Anwendung oder ein Treiber die folgenden HIDClass-Supportroutinen verwenden:
Diese Routinen sind nützlich für eine Anwendung oder einen Treiber, der einen „Mehrwert“-Dienst bereitstellt. Beispielsweise einen, der eine benutzerdefinierte Schnittstelle für alle von einem HIDClass-Gerät unterstützten Steuerelemente bereitstellt. Microsoft DirectInput ist ein Beispiel.
Eine Anwendung oder ein Treiber, der diese Routinen aufruft, kann alle Werte in einem Bericht am effizientesten abrufen und festlegen. Um beispielsweise alle Wertdaten anhand ihrer HID-Verwendungen abzurufen, muss HidP_GetUsageValue für jede Verwendung aufgerufen werden. Um jedoch alle Wertdaten nach Datenindex abzurufen, muss HidP_GetData nur einmal abgerufen werden.
Eine Anwendung oder ein Treiber verwendet die in den Schaltflächenfunktionsarrays und Wertfunktionsarrrays einer Sammlung angegebenen Datenindizes, um HID-Verwendungen zu identifizieren.
Festlegen von Wertdaten durch Angeben der Verwendung
Eine Anwendung oder ein Treiber kann einen Wert in einem ordnungsgemäß initialisierten HID-Bericht festlegen, indem eine der folgenden HID-Supportroutinen aufgerufen wird:
- HidP_SetScaledUsageValue Legt einen signierten und skalierten Wert in einem Bericht fest.
- HidP_SetUsageValue Legt einen Wert in einem Bericht fest.
- HidP_SetUsageValueArray Legt ein Verwendungswertarray in einem Bericht fest.
Festlegen des Schaltflächenzustands durch Angeben der Verwendung
Eine Anwendung oder ein Treiber kann den Status von Schaltflächen in einem ordnungsgemäß initialisierten HID-Bericht festlegen, indem eine der folgenden HIDClass-Supportroutinen aufgerufen wird:
- HidP_SetButtons (oder HidP_SetUsages) Legt einen angegebenen Satz von Schaltflächen auf EIN (1) fest.
- HidP_UnsetButtons (oder HidP_UnsetUsages) Legt einen angegebenen Satz von Schaltflächen auf AUS (Null) fest.
Extrahieren und Festlegen von HID-Steuerelementdaten nach Datenindizes
Um Datenindizes zum Extrahieren und Festlegen von Steuerelementdaten in einem HID-Bericht zu verwenden, kann eine Anwendung oder ein Treiber die folgenden HIDClass-Supportroutinen verwenden:
Diese Routinen sind nützlich für eine Anwendung oder einen Treiber, der einen „Mehrwert“-Dienst bereitstellt. Beispielsweise einen, der eine benutzerdefinierte Schnittstelle für alle von einem HIDClass-Gerät unterstützten Steuerelemente bereitstellt. Microsoft DirectInput ist ein Beispiel.
Eine Anwendung oder ein Treiber, der diese Routinen aufruft, kann alle Werte in einem Bericht am effizientesten abrufen und festlegen. Um beispielsweise alle Wertdaten anhand ihrer HID-Verwendungen abzurufen, muss HidP_GetUsageValue für jede Verwendung aufgerufen werden. Um jedoch alle Wertdaten nach Datenindex abzurufen, muss HidP_GetData nur einmal abgerufen werden.
Eine Anwendung oder ein Treiber verwendet die in den Schaltflächenfunktionsarrays und Wertfunktionsarrrays einer Sammlung angegebenen Datenindizes, um HID-Verwendungen zu identifizieren.