Interpretowanie raportów HID

W tym artykule opisano, jak aplikacje w trybie użytkownika i sterowniki trybu jądra używają procedur obsługi HidP_XxxHIDClass do interpretowania danych kontroli w raporcie HID.

Wyodrębnianie danych wartości przez określenie ich użycia

Aby wyodrębnić dane wartości z raportu HID, aplikacja lub sterownik mogą używać jednej z następujących procedur pomocy technicznej HID:

Aby używać HidP_GetUsageValueArray, aplikacje i sterowniki muszą przydzielić bufor zainicjowany zerami, który jest wystarczająco duży, aby przechowywać tablicę wartości użycia. Wymagany rozmiar w bajtach jest produktem elementów członkowskich BitSize i ReportCount struktury HIDP_VALUE_CAPS tablicy wartości użycia, zaokrąglonych do najbliższego bajtu.

Wyodrębnianie funkcji przycisków, które są ustawione na ON

Aby wyodrębnić użycie przycisków HID ustawionych na WŁ. (1), aplikacje i sterowniki wywołują jedną z następujących procedur wsparcia HID:

Te procedury zwracają tablicę wszystkich informacji dotyczących użycia dla wszystkich przycisków, które są obecnie ustawione jako aktywne. Niejawnie przyciski, których użycie nie jest zwracane przez te procedury, są ustawione na wartość OFF (zero).

Aby wywołać te procedury, aplikacje i sterowniki muszą najpierw przydzielić i wyzerować bufor używany do zwracania tablicy użycia przycisków. Aplikacja lub sterownik wywołuje HidP_MaxUsageListLength w celu określenia liczby użycia przycisków na określonej stronie użycia w raporcie. Jeśli aplikacja lub sterownik określa stronę użycia o wartości zero, procedura zwraca liczbę wszystkich użyć przycisków w raporcie.

Wymagany rozmiar buforu w bajtach to:

  • (Dla HidP_GetButtons) Wartość zwracana przez HidP_MaxUsageListLength razy sizeof(USAGE)
  • (Dla HidP_GetButtonsEx) Wartość zwracana przez HidP_MaxUsageListLength razy sizeof(USAGE_AND_PAGE)

Gdy aplikacja lub sterownik użyje tych procedur, aby uzyskać informacje o tym, które przyciski są obecnie ustawione na WŁĄCZONE, może określić różnicę między bieżącym stanem a poprzednim stanem przycisków, wywołując jedną z następujących funkcji pomocniczych HIDClass. Te procedury zwracają różnicę między dwiema tablicami informacji o użyciu:

Ustawianie danych wartości poprzez określenie ich użycia

Aplikacja lub sterownik może ustawić wartość w prawidłowo zainicjowanym raporcie HID, wywołując jedną z następujących procedur pomocy technicznej HID:

Ustawianie stanu przycisku przez określenie jego użycia

Aplikacja lub sterownik może ustawić stan przycisków w prawidłowo zainicjowanym raporcie HID, wywołując jedną z następujących procedur pomocy technicznej HIDClass:

Wyodrębnianie i ustawianie danych sterujących według indeksów danych

Aby użyć indeksów danych do wyodrębniania i ustawiania danych kontrolnych w raporcie HID, aplikacja lub sterownik mogą używać następujących procedur pomocy technicznej HIDClass:

Te procedury są przydatne dla aplikacji lub sterownika, który zapewnia "wartość dodaną" usługi. Na przykład taki, który udostępnia interfejs niestandardowy dla wszystkich kontrolek obsługiwanych przez urządzenie HIDClass. Microsoft DirectInput jest jednym z przykładów.

Aplikacja lub sterownik wywołujący te procedury może najefektywniej uzyskać i ustawić wszystkie wartości w raporcie. Na przykład, żeby uzyskać wszystkie wartości danych według ich użycia HID, musi wywołać HidP_GetUsageValue dla każdego użycia. Jednak aby uzyskać wszystkie dane wartości według indeksu danych, musi wywołać tylko HidP_GetData raz.

Aplikacja lub sterownik używa indeksów danych określonych w tablicach możliwości przycisków i tablicach możliwości wartości kolekcji do identyfikowania użycia HID.

Zobacz także