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.
Czas oczekiwania/budzenia IRP kończy się po nadejściu sygnału wznawiania. Sygnał wybudzenia jest specyficzny dla urządzenia, ale zazwyczaj jest zwykłym zdarzeniem serwisowym dla urządzenia. Na przykład sygnał dzwonka może spowodować przebudzenie uśpionego modemu.
Na przedstawionej poniżej ilustracji pokazano etapy wykonywania operacji oczekiwania/budzenia IRP.
Gdy wystąpi sygnał, kontrola ponownie wprowadza sterownik magistrali w momencie, gdy magistrala wykryje, że urządzenie się obudziło. Kierowca autobusu obsługuje zdarzenie zgodnie z potrzebami i wywołuje IoCompleteRequest, aby ukończyć IRP_MN_WAIT_WAKE IRP dla jego PDO.
Następnie menedżer wejścia/wyjścia wywołuje procedurę IoCompletion, która została ustawiona przez wyższy sterownik w stosie urządzeń. W procedurze IoCompletion sterownik obsługuje sygnał wznawiania zgodnie z potrzebami i wywołuje IoCompleteRequest, aby ukończyć IRP. Menedżer we/wy nadal wywołuje IoCompletion procedury pracy nad tworzeniem kopii zapasowej stosu urządzeń do momentu ukończenia protokołu IRP przez wszystkie sterowniki.
W swojej procedurze IoCompletion, każdy sterownik, który wylicza więcej niż jedno urządzenie podrzędne (tworzy więcej niż jedno PDO) i otrzymał żądania oczekiwania/budzenia od więcej niż jednego takiego urządzenia, musi wysłać do siebie żądanie IRP oczekiwania/budzenia, aby ponownie się uzbroić w oczekiwanie/budzenie dla innego urządzenia podrzędnego. Aby uzyskać szczegółowe informacje, zobacz Zrozumienie ścieżki IRP Wait/Wake przez drzewo urządzeń.
Po wywołaniu procedur IoCompletion ustawionych przez sterowniki podczas przekazywania IRP w dół stosu, menedżer we/wy wywołuje procedurę wywołania zwrotnego ustawioną przez właściciela polityki zasilania, gdy zażądał IRP oczekiwania/budzenia. W procedurze wywołania zwrotnego właściciel zasad powinien zwrócić swoje urządzenie do stanu operacyjnego i ukończyć oczekujące IRP typu wait/wake dla podrzędnego PDO, jeśli istnieje.
Ukończenie IRP dziecka powoduje, że menedżer we/wy wywołuje procedury IoCompletion ustawiane przez sterowniki w stosie urządzenia dziecka, itd. W końcu właściciel polityki, który uruchomił oryginalny IRP oczekiwania/wznawiania w węźle urządzenia, określa, że jego urządzenie zgłosiło sygnał budzenia, a wszystkie oczekujące IRPy oczekiwania/wznawiania zostaną ukończone.