다음을 통해 공유


필터 또는 함수 드라이버에서 시스템 Query-Power IRP 실패

필터 또는 함수 드라이버(디바이스의 전원 정책 소유자가 아님)는 다음 중 하나가 true인 경우 IRP_MN_QUERY_POWER 요청에 실패할 수 있습니다.

  • 절전 모드 해제를 위해 디바이스가 활성화되고 요청된 시스템 전원 상태가 SystemWake 값보다 덜 전원이 공급되며, 이는 디바이스가 시스템을 절전 모드에서 해제할 수 있는 최소 전원 상태를 지정합니다. 예를 들어 S2에서 시스템을 절전 모드에서 해제할 수 있지만 S3에서 해제할 수 없는 디바이스는 S3에 대한 쿼리에 실패하지만 S2에 대한 쿼리는 성공합니다.

  • 요청된 상태에 해당하는 디바이스 전원 상태를 입력하면 드라이버가 열려 있는 모뎀 연결과 같은 데이터가 손실되는 작업을 중단해야 합니다. 드라이버가 이러한 이유로 쿼리에 실패하는 경우는 거의 없습니다. 대부분의 상황에서 애플리케이션은 이러한 경우를 처리합니다.

시스템 전원 상태에 대한 IRP_MN_QUERY_POWER 요청에 실패하려면 드라이버가 다음 단계를 수행해야 합니다.

  1. PoStartNextPowerIrp을 호출하여 드라이버가 다음 전원 IRP를 처리할 준비가 되었음을 나타냅니다. (Windows Server 2003, Windows XP 및 Windows 2000만 해당)

  2. Irp-IoStatus.Status>를 오류 상태 설정하고 IoCompleteRequest를 호출하여 IO_NO_INCREMENT 지정합니다. IRP를 디바이스 스택 아래로 더 이상 전달하지 마세요.

  3. IoReleaseRemoveLock을 호출하여 이전에 획득한 잠금을 해제합니다.

  4. DispatchPower 루틴에서 오류 상태 반환합니다.