시스템이 S0으로 반환될 때 전원이 켜진 디바이스 보고

[KMDF에만 적용]

시스템이 저전력 상태에서 S0(작동) 상태로 돌아오면 PnP 관리자는 시스템 세트 전원 IRP(IRP_MN_SET_POWER)를 전송하여 디바이스를 작동(D0) 상태로 반환합니다. WDF는 시스템 설정 전원 IRP를 처리합니다. 그러나 다중 구성 요소 시나리오에서 드라이버가 PoFx(전원 관리 프레임워크)에 직접 등록되었기 때문에 디바이스가 완전히 켜진(D0) 전원 상태로 전환이 완료되면 드라이버는 PoFxReportDevicePoweredOn 을 호출해야 합니다. 드라이버는 시스템 설정 전원 IRP가 도착할 때 알림을 수신하도록 WDM 전처리 루틴을 등록하여 이 작업을 수행할 수 있습니다.

드라이버는 다음 절차를 사용할 수 있습니다.

  1. WdfDeviceInitAssignWdmIrpPreprocessCallback을 호출하여 IRP_MN_SET_POWER대한 EvtDeviceWdmIrpPreprocess 콜백 함수를 등록합니다. 콜백에서 드라이버는 디바이스 확장에 플래그를 설정하여 다음 EvtDeviceD0Entry 콜백에서 PoFxReportDevicePoweredOn을 호출해야 함을 나타냅니다.
  2. EvtDeviceD0Entry에서 플래그가 설정되면 드라이버는 플래그를 지우고 PoFxReportDevicePoweredOn을 호출합니다.
  3. 또한 드라이버는 EvtDeviceSelfManagedIoFlush에서 플래그를 확인합니다. 플래그가 설정되면 디바이스가 D0으로 돌아가지 못하고 디바이스가 제거되었습니다. 이 경우 드라이버는 PoFxReportDevicePoweredOn을 호출한 다음, 전원 프레임워크를 사용하여 등록을 취소합니다.