Udostępnij przez


Raportowanie urządzenia włączonego po powrocie systemu do S0

[Dotyczy tylko usługi KMDF]

Gdy system powróci do stanu roboczego (S0) ze stanu niskiego zasilania, menedżer PnP wysyła systemowy protokół IRP (IRP_MN_SET_POWER), aby przywrócić urządzenie do stanu pracy (D0). WDF obsługuje system set-power IRP. Jednak ze względu na to, że w scenariuszu wieloskładnikowym sterownik został bezpośrednio zarejestrowany w strukturze zarządzania energią (PoFx), sterownik musi wywołać PoFxReportDevicePoweredOn po zakończeniu przejścia do pełnego stanu zasilania (D0). Sterownik może to osiągnąć, rejestrując procedurę przetwarzania wstępnego WDM w celu otrzymania powiadomienia, gdy nadejdzie IRP ustawienia zasilania systemu.

Sterownik może użyć następującej procedury:

  1. Wywołaj WdfDeviceInitAssignWdmIrpPreprocessCallback, aby zarejestrować funkcję wywołania zwrotnego EvtDeviceWdmIrpPreprocess dla IRP_MN_SET_POWER. W wywołaniu zwrotnym sterownik ustawia flagę w rozszerzeniu urządzenia, aby wskazać, że musi wywołać PoFxReportDevicePoweredOn z następnej EvtDeviceD0Entry wywołania zwrotnego.
  2. W EvtDeviceD0Entry, jeśli flaga jest ustawiona, sterownik czyści flagę i wywołuje PoFxReportDevicePoweredOn.
  3. Sterownik sprawdza również flagę w EvtDeviceSelfManagedIoFlush. Jeśli flaga jest ustawiona, urządzenie nie może powrócić do D0 i urządzenie zostało usunięte. W takim przypadku sterownik wywołuje PoFxReportDevicePoweredOn, a następnie wyrejestruje się z frameworku zasilania.