다음을 통해 공유


시스템 전원 상태에 대한 IRP_MN_QUERY_POWER 처리

Power Manager는 Parameters.Power.Type에서 부 IRP 코드 IRP_MN_QUERY_POWER및 SystemPowerState를 사용하여 전원 IRP를 전송하여 지정된 시스템 전원 상태(S1-S5)로 안전하게 변경할 수 있는지 여부를 확인하고 드라이버가 이러한 변경에 대비할 수 있도록 합니다.

가능하면 전원 관리자는 더 낮은(덜 전원이 공급되는) 상태를 요청하는 IRP_MN_SET_POWER 보내기 전에 쿼리합니다. 그러나 배터리가 고장나거나 전원이 곧 손실되는 경우 전원 관리자는 먼저 쿼리하지 않고 설정된 전원 IRP를 보냅니다. 전원 관리자는 IRP를 보내기 전에 쿼리를 보내지 않으며 시스템을 S0(작업 상태)으로 설정합니다.

디바이스의 전원 정책 소유자가 시스템 쿼리 전원 요청을 처리하는 방법에 대한 자세한 내용은 디바이스 전원 정책 소유자에서 시스템 Query-Power IRP 처리를 참조하세요.

디바이스의 전원 정책 소유자가 아닌 드라이버가 시스템 쿼리 전원 요청을 처리하는 방법에 대한 자세한 내용은 다음을 참조하세요.

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

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

버스 드라이버에서 시스템 Query-Power IRP 처리

드라이버는 시스템 쿼리에 대한 응답으로 디바이스 IRP_MN_SET_POWER 요청을 보내지 않아야 합니다. 시스템 설정 전원 요청을 받은 후에만 이러한 IRP를 요청합니다.

Power Manager는 시스템 쿼리 IRP를 시스템의 각 디바이스 스택으로 보내기 때문에 한 디바이스에 대한 드라이버가 쿼리에 실패할 수 있으며 다른 디바이스용 드라이버가 성공적으로 완료될 수 있습니다. Windows Vista부터 시스템 전원 상태를 절전 상태로 변경하는 것은 중요한 전원 상태 변경입니다. 드라이버가 시스템 쿼리 전원 IRP에 실패하더라도 Windows Vista의 전원 관리자는 여전히 시스템 전원 상태를 절전 상태로 변경할 수 있습니다. 쿼리가 활성화된 동안 배터리가 만료되어 즉시 종료해야 할 수도 있습니다. 따라서 쿼리 IRP 후 드라이버는 다음 전원 IRP를 받을 준비가 되어 있어야 합니다.

  • 쿼리된 상태에 대한 IRP_MN_SET_POWER

  • 다른 전원 상태에 대한 IRP_MN_SET_POWER

  • 현재 전원 상태에 대한 IRP_MN_SET_POWER

  • 모든 상태에 대한 IRP_MN_QUERY_POWER

그러나 일반적으로 드라이버는 시스템 쿼리 IRP에 따라 시스템 설정 전원 IRP를 받습니다. 그럼에도 불구하고 드라이버가 쿼리 전원 IRP에 실패하더라도 드라이버가 시스템 전원 상태를 변경할 준비가 되어 있어야 합니다.