전원 IRP 처리
드라이버는 DispatchPower 루틴에서 전원 IRP 를 처리합니다. 모든 전원 관리 요청에는 주요 IRP 코드 IRP_MJ_POWER 및 다음 부 코드 중 하나가 있습니다.
IRP_MN_QUERY_POWER - 전원 상태 변경이 가능한지 여부를 확인하는 쿼리
IRP_MN_SET_POWER — 한 전원 상태에서 다른 전원 상태로 변경 요청
IRP_MN_WAIT_WAKE — 디바이스가 자체 또는 시스템의 절전 모드를 해제하도록 요청합니다.
IRP_MN_POWER_SEQUENCE - 특정 디바이스에 대한 전원 복원을 최적화하기 위한 정보 요청
IRP_MN_SET_POWER 및 IRP_MN_QUERY_POWER 대한 지원이 필요합니다. 모든 드라이버는 이러한 IRP를 처리할 준비가 되어 있어야 합니다.
외부 신호에 대한 응답으로 각성할 수 있는 모든 디바이스에 대해 디바이스 스택의 모든 드라이버에 대해 IRP_MN_WAIT_WAKE 지원이 필요합니다. 드라이버는 절전 모드 해제를 위해 디바이스를 사용하도록 설정하기 위해 이 IRP를 보냅니다.
IRP_MN_POWER_SEQUENCE 대한 지원은 선택 사항입니다. 이 IRP는 전원을 복원하는 데 시간이 오래 걸리는 디바이스에 대한 최적화를 제공합니다.
전원 IRP는 시스템 전원 작업 또는 디바이스 전원 작업을 지정할 수 있습니다. 시스템용 전원 IRP 및 개별 디바이스의 전원 IRP 는 다음 섹션에 설명된 대로 디바이스 스택을 통해 약간 다른 경로를 사용합니다.