Sdílet prostřednictvím


Získání předzpracovaných dat

Tento článek popisuje, jak aplikace v uživatelském režimu a ovladače režimu jádra získávají předemparovaná data kolekce HID, což je neprůzná struktura, která popisuje sestavy HID kolekce.

User-Mode aplikace

Aplikace v uživatelském režimu musí před voláním některé z rutin podpory HIDClass , které vyžadují předparovaná data kolekce, získat předem rozdělená data. Aplikace by měla zachovat přístup k předem odděleným datům kolekce, pokud má na zařízení otevřený soubor.

Po otevření souboru v kolekci HID aplikace volá HidD_GetPreparsedData, aby vrátila předzpracovaná data kolekce ve vyrovnávací paměti alokované rutinou.

Aplikace by měly volat HidD_FreePreparsedData, když aplikace už nevyžaduje přístup ke kolekci.

Ovladač Kernel-Mode

Jakmile ovladač režimu jádra otevře kolekci HID, ovladač získá předemparsovaná data kolekce následujícím způsobem:

  • Získá délku předem zpracovaných dat kolekce.

  • Získá předem parsovaná data z kolekce.

K určení délky předem připravených dat ovladač použije požadavek IOCTL_HID_GET_COLLECTION_INFORMATION . Tento požadavek vrátí strukturu HID_COLLECTION_INFORMATION . Člen DescriptorSize této struktury určuje velikost předemparovaných dat kolekce v bajtech. Ovladač musí přidělit vyrovnávací paměť z nestránkového fondu alespoň této velikosti, aby mohl uchovávat předem oddělená data.

Po přidělení vyrovnávací paměti pro předem připravená data ovladač použije IOCTL_HID_GET_COLLECTION_DESCRIPTOR požadavek na získání předem připravených dat.

Po získání předem zpracovaných dat je může ovladač použít s rutinami podpory **HidP_**Xxx HID ke získání informací o možnostech kolekce HID a k extrakci řídicích dat ze sestav HID.