Sdílet prostřednictvím


Přístup k modelu vlastností sjednoceného zařízení

Toto téma popisuje, jak ovladač WDF (Windows Driver Frameworks) načítá nebo upravuje vlastnosti, které jsou vystaveny prostřednictvím modelu sjednocených vlastností zařízení. Uvedené metody jsou k dispozici od verze User-Mode Driver Framework (UMDF) 2.0 a Kernel-Mode Driver Framework (KMDF) verze 1.13.

Ovladače KMDF a UMDF mohou volat následující metody:

Ovladače KMDF a UMDF mohou volat následující metody pouze před voláním WdfDeviceCreate. Další informace o volání WdfDeviceCreatenaleznete v tématu Vytvoření objektu zařízení rozhraní.

Po volání WdfDeviceCreatemůže ovladač získat informace o vlastnosti zařízení voláním odpovídající metody WdfDeviceXxxProperty.

Výše uvedené metody -Ex se liší od svých-Ex protějšků tím, že umožňují zadat vlastnosti pomocí struktury WDF_DEVICE_PROPERTY_DATA, namísto podmnožiny, které můžete zadat pomocí DEVICE_REGISTRY_PROPERTY.

Před příjmem dat vlastností zařízení ovladače obvykle volají WdfXxxQueryProperty pouze k získání požadované velikosti vyrovnávací paměti. U některých vlastností se velikost dat může změnit mezi tím, kdy se vrátí požadovaná velikost, a když ovladač volá WdfXxxQueryProperty znovu. Ovladače by proto měly volat WdfXxxQueryProperty uvnitř smyčky, která se spustí, dokud návratový stav není STATUS_BUFFER_TOO_SMALL.

Nejlepší je použít WdfXxxQueryProperty pouze tehdy, když je požadovaná velikost vyrovnávací paměti známá a neměnná, protože v takovém případě musí ovladač volat WdfXxxQueryProperty pouze jednou. Pokud je požadovaná velikost vyrovnávací paměti neznámá nebo se liší, ovladač by měl volat WDFXxxAllocAndQueryProperty.

Přístup k vlastnostem rozhraní zařízení

Ovladače UMDF můžou použít následující metody k načtení nebo úpravě vlastností rozhraní zařízení, které jsou vystaveny prostřednictvím sjednoceného modelu vlastností:

Pokud chcete načíst nebo upravit vlastnost rozhraní zařízení, ovladač KMDF musí volat IoGetDeviceInterfacePropertyData nebo IoSetDeviceInterfacePropertyData přímo.