Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ovladač může zavolat IoWMIWriteEvent, aby odeslal jakoukoli událost. Událost se může skládat z jedné položky, jedné instance nebo všech instancí datového bloku a může používat dynamické názvy instancí.
Na rozdíl od struktury WNODE_XXX předávané pomocí požadavků na dotazy nebo změny, které jsou přiděleny a částečně inicializovány WMI rozhraním, musí ovladač přidělit a inicializovat všechny členy této struktury WNODE_XXX, která obsahuje událost.
Ovladač musí událost odeslat až poté, co služba WMI odeslala IRP_MN_ENABLE_EVENTS žádost o povolení události. Potom, když dojde k aktivační podmínce události, ovladač:
Přidělí vyrovnávací paměť z nestránkového fondu tak, aby obsahovala strukturu WNODE_XXX potřebnou pro událost, včetně prostoru pro data proměnných, pokud nějaká existují.
V závislosti na události může ovladač přidělit WNODE_SINGLE_ITEM, WNODE_SINGLE_INSTANCE nebo WNODE_ALL_DATA události. Velikost WNODE_XXX plus dat proměnné nesmí překročit limit 1K definovaný registrem.
Inicializuje všechny členy struktury WNODE_XXX , včetně WnodeHeader.Flags:
Ovladač nastaví příznak WNODE_FLAG_EVENT_ITEM označující, že struktura je událost.
Ovladač nastaví jeden z následujících příznaků, který označuje typ struktury WNODE_XXX :
WNODE_FLAG_ALL_DATA – Všechny údaje značky WNODE_FLAG
WNODE_FLAG_SINGLE_INSTANCE
WNODE_FLAG_SINGLE_ITEM
Ovladač nastaví nebo vymaže následující příznaky, které označují, jestli blok používá statické nebo dynamické názvy instancí:
WNODE_FLAG_STATIC_INSTANCE_NAMES
WNODE_FLAG_PDO_INSTANCE_NAMES
Ovladač může v závislosti na události nastavit další příznaky.
Přetypuje ukazatel na WNODE_XXX na PWNODE_EVENT_ITEM.
Zavolá IoWMIWriteEvent s ukazatelem.
Pokud se IoWMIWriteEvent úspěšně dokončí, služba WMI uvolní paměť přidělenou ovladačem pro událost.
Jakmile se IoWMIWriteEvent vrátí, ovladač obnoví monitorování podmínky triggeru události a odešle událost pokaždé, když je splněna její podmínka triggeru, dokud služba WMI neodešle požadavek IRP_MN_DISABLE_EVENTS na zakázání této události.
Pokud velikost události překročí maximální velikost definovaného registru 1K (nedoporučuje se), ovladač by měl volat IoWmiWriteEvent s inicializovaným WNODE_EVENT_REFERENCE , který určuje identifikátor GUID události, jeho velikost a index instance (pro názvy statických instancí) nebo název (pro dynamické názvy instancí). Rozhraní WMI použije informace v WNODE_EVENT_REFERENCE pro dotaz na událost.
Ovladač může odeslat události, které nepoužívají dynamické názvy instancí a které se skládají z jedné instance voláním rutiny knihovny WMI WmiFireEvent. Ovladač nemusí přidělit a inicializovat strukturu WNODE_XXX pro volání WmiFireEvent . WMI zabalí data události ovladače do WNODE_SINGLE_INSTANCE a doručí je příjemcům dat. Další informace o odesílání událostí pomocí WmiFireEvent naleznete v tématu Odeslání události pomocí WmiFireEvent.