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.
Většina rutin odesílání ovladačů se volá v libovolném kontextu vlákna v IRQL = PASSIVE_LEVEL s následujícími výjimkami:
Všechny rutiny dispečerů nejvyšší úrovně se volají v kontextu vlákna, které pochází z V/V požadavku, což je obvykle vlákno aplikace v uživatelském režimu.
Jinými slovy, rutiny odesílání ovladačů systému souborů a dalších ovladačů nejvyšší úrovně jsou volány v nespecifickém kontextu vlákna při IRQL = PASSIVE_LEVEL.
Rutiny DispatchRead, DispatchWrite a DispatchDeviceControl ovladačů zařízení nejnižší úrovně a přechodných ovladačů, které jsou nad nimi vrstvené v cestě stránkování systému, lze volat v IRQL = APC_LEVEL a v libovolném kontextu vlákna.
Rutiny DispatchRead a/nebo DispatchWrite a všechny ostatní rutiny, které také zpracovávají požadavky na čtení a zápis v takovém zařízení nebo přechodném ovladači nejnižší úrovně, musí být vždy rezidentní. Tyto rutiny ovladače nemohou být stránkovatelné ani nemohou být součástí oddílu stránkovatelného obrazu ovladače; nesmí přistupovat k žádné stránkovatelné paměti. Kromě toho by neměly být závislé na žádných blokujících voláních (například KeWaitForSingleObject s nenulovým vypršením časového limitu).
Procedura DispatchPower ovladačů na hibernačních a/nebo stránkovacích cestách může být volána na úrovni IRQL = DISPATCH_LEVEL. Rutiny DispatchPnP těchto ovladačů musí být připravené ke zpracování požadavků PnP IRP_MN_DEVICE_USAGE_NOTIFICATION .
Procedura DispatchPower ovladačů, které při spuštění vyžadují nárazový proud, může být volána v IRQL = DISPATCH_LEVEL.
Další informace najdete v tématu Správa priorit hardwaru.