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šechny filtrační ovladače a jakýkoli funkční ovladač, který nevlastní politiku napájení pro svůj zásobník zařízení, by měly jednoduše předat systémové IRP nastavení napájení dalšímu nižšímu úrovňovému ovladači v následujících krocích:
Zavolejte IoAcquireRemoveLock, předejte aktuální IRP, abyste zajistili, že ovladač neobdrží požadavek PnP IRP_MN_REMOVE_DEVICE při zpracování napájecího IRP.
Pokud IoAcquireRemoveLock vrátí stav selhání, ovladač by neměl pokračovat ve zpracování IRP. Počínaje Windows Vista by ovladač měl zavolat IoCompleteRequest, aby dokončil IRP a vrátil stav selhání. V systému Windows Server 2003, Windows XP a Windows 2000 musí ovladač nejprve zavolat PoStartNextPowerIrp, zavolat IoCompleteRequest pro dokončení IRP a poté vrátit stav selhání.
Zavolejte PoStartNextPowerIrp pro spuštění dalšího energetického IRP. (Jenom Windows Server 2003, Windows XP a Windows 2000.)
Nastavte umístění zásobníku IRP (IoSkipCurrentIrpStackLocation nebo IoCopyCurrentIrpStackLocationToNext). Ovladač může nastavit rutinu IoCompletion v protokolu IRP, ale to je zřídka nutné.
Zavolejte IoCallDriver (ve Windows 7 a Windows Vista) nebo PoCallDriver (v systémech Windows Server 2003, Windows XP a Windows 2000) a předejte IRP do dalšího nižšího ovladače.
Zavolejte IoReleaseRemoveLock. Pokud však ovladač nastavil rutinu IoCompletion pro IRP, proveďte toto volání z rutiny IoCompletion .
Vraťte STATUS_PENDING z rutiny DispatchPower.