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 pomocí událostí rozhraní WMI upozorňovat aplikace v uživatelském režimu na události, aniž by aplikace vyžadovaly dotazování nebo odesílání IRP. Ovladač by měl používat události rozhraní WMI k upozornění klientů rozhraní WMI o výjimečných podmínkách, ne jako alternativu k protokolování chyb. Ovladač by měl podporovat všechny standardní bloky událostí definované pro jeho typ zařízení ve Wmicore.mof a může definovat a registrovat další vlastní bloky událostí pro podporu oznámení specifických pro zařízení.
Blok události je jednoduše datový blok, který je odvozen z abstraktní základní třídy WMIEvent. Blok události může obsahovat jakákoli stejná data jako datový blok nebo může být prázdný – to znamená, že blok událostí nemusí obsahovat žádné datové položky definované ovladačem. Pokud blok událostí obsahuje data, celková velikost WNODE_XXX plus data by neměla překročit limit definovaný registrem 1 kilobajtů. Obecně platí, že menší události vedou k lepšímu výkonu systému a včasnému oznámení. Informace o definování bloků naleznete v tématu MOF Syntaxe pro WMI data a bloky událostí a Navrhování WMI dat a bloků událostí.
Ovladač označuje podporu události registrací odpovídajícího bloku událostí s WMIREG_FLAG_EVENT_ONLY_GUID nastaveným ve struktuře WMIREGGUID bloku. Informace o registraci bloků najdete v tématu Registrace jako zprostředkovatele dat rozhraní WMI.
Když uživatel klienta WMI požádá o oznámení události, rozhraní WMI odešle ovladači IRP_MN_ENABLE_EVENTS požadavek, který upozorní ovladač, aby začal monitorovat podmínku spouštěče určenou ovladačem pro danou událost. Když dojde k podmínce aktivace, ovladač odešle událost systému WMI, který ji doručí všem příjemcům dat, kteří se k události zaregistrovali.
Ovladač odešle událost rozhraní WMI jedním z následujících způsobů:
Zavolejte rutinu knihovny WMI v režimu jádra WmiFireEvent. Ovladač může volat WmiFireEvent k odesílání pouze událostí, které nepoužívají dynamické názvy instancí a které mají statické názvy instancí založené na jednom řetězci základního názvu nebo na ID instance zařízení fyzického objektu zařízení (PDO). Kromě toho musí být událost jedinou instancí – to znamená, že ovladač nemůže volat WmiFireEvent k odeslání události, která se skládá z jedné položky nebo více instancí. Další informace naleznete v tématu Odesílání události pomocí WmiFireEvent.
Volejte rutinu IoWMIWriteEvent v režimu jádra s ukazatelem na přiřazenou a inicializovanou strukturu WNODE_XXX obsahující data události. Další informace najdete v tématu Odesílání události pomocí IoWMIWriteEvent.