Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Począwszy od systemu Windows Vista, wywoływanie polecenia PoStartNextPowerIrp nie jest wymagane i wywołanie tej procedury nie wykonuje operacji zarządzania energią. Jednak w systemach Windows Server 2003, Windows XP i Windows 2000, po przetworzeniu przez sterownik IRP zapytania o zasilanie lub IRP ustawienia zasilania, sterownik musi wywołać polecenie PoStartNextPowerIrp, aby powiadomić menedżera zasilania, że jest gotowy do otrzymania kolejnego IRP zasilania. Sterowniki muszą wywołać metodę PoStartNextPowerIrp, gdy lokalizacja stosu IRP wskazuje bieżący sterownik, i przed wywołaniem funkcji PoCallDriver.
Kierowca musi wywołać tę procedurę raz dla każdego IRP_MN_QUERY_POWER lub IRP_MN_SET_POWER żądania, które otrzymuje. Sterowniki nie muszą wywoływać PoStartNextPowerIrp podczas obsługi IRP_MN_WAIT_WAKE lub IRP_MN_POWER_SEQUENCE żądań.
Gdy sterownik wywołuje PoStartNextPowerIrp, bieżąca lokalizacja stosu IRP musi wskazywać na bieżący sterownik. Ogólnie rzecz biorąc, to wywołanie najlepiej wykonać z poziomu procedury IoCompletion. PoStartNextPowerIrp musi być wywoływany przed IoCompleteRequest, IoSkipCurrentIrpStackLocation i PoCallDriver. Wywoływanie procedur w innej kolejności może spowodować zakleszczenie systemu.
Nawet jeśli sterownik nie przejdzie IRP, musi jednak wywołać PoStartNextPowerIrp, aby poinformować menedżera energii, że jest przygotowany do obsługi kolejnego IRP.
Poniższe sekcje wyjaśniają, kiedy każdy typ sterownika powinien wywołać tę procedurę:
Wywoływanie metody PoStartNextPowerIrp ze sterownika filtru
Wywoływanie funkcji PoStartNextPowerIrp przez właściciela zasad zasilania urządzenia
Wywoływanie metody PoStartNextPowerIrp ze sterownika magistrali