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.
Systém definuje tři objekty zpětného volání pro použití ovladače:
\Callback\SetSystemTime
\Callback\PowerState
\Callback\ProcessorAdd
Ovladače, které používají systémový čas (například ovladače systému souborů), se mohou zaregistrovat pro \Callback\SetSystemTime objekt zpětného volání. Toto zpětné volání poskytuje oznámení o změně systémového času.
Objekt zpětného volání \Callback\PowerState poskytuje oznámení, když dojde k některé z následujících situací:
Systém se přepne ze střídavého proudu na stejnosměrný proud nebo naopak.
Zásady napájení systému se mění v důsledku požadavku uživatele nebo aplikace.
Přechod do stavu spánku nebo vypnutí systému je bezprostředně blízko. Ovladač může požádat o oznámení, aby mohl kód uzamknout do paměti v očekávání vypnutí. Rutiny zpětného volání budou upozorněny před tím, než správce napájení odešle IRP pro nastavení napájení systému.
Zpětné volání \Callback\ProcessorAdd zajišťuje oznámení při přidání nového procesoru do systému.
Chcete-li použít zpětné volání definované systémem, ovladač inicializuje blok atributu voláním InitializeObjectAttributes s názvem zpětného volání a pak otevře objekt zpětného volání (ExCreateCallback), stejně jako u zpětného volání definovaného ovladačem. Ovladač by neměl požadovat vytvoření objektu zpětného volání.
S popisovačem vráceným ExCreateCallbackovladač volá ExRegisterCallback k registraci rutiny oznámení, předání ukazatele na libovolný kontext a ukazatel na jeho rutinu. Ovladač může kdykoli zaregistrovat svoji rutinu zpětného volání. Když nastane zadaná podmínka, systém volá zaregistrovanou rutinu zpětného volání v IRQL<=DISPATCH_LEVEL.
Pokud ovladač již nevyžaduje oznámení, měl by volat ExUnregisterCallback, aby odstranil svou rutinu zpětného volání ze seznamu registrovaných zpětných volání a odebral svou referenci na objekt zpětného volání.