다음을 통해 공유


대기/절전 모드 해제 작업 개요

운영 체제의 절전 모드 해제 메커니즘은 다음 그림과 같이 작동합니다.

irp-mn-wait-wake 처리의 개요를 보여 주는 다이어그램

  1. 시스템 및 디바이스가 작동 상태에 있는 동안 디바이스의 전원 정책 소유자는 절전 모드 해제를 위해 디바이스를 사용하도록 설정("무장")해야 한다고 결정합니다. 전원 정책 소유자는 디바이스 스택의 모든 드라이버에 알리기 위해 전원 IRP(부 코드 IRP_MN_WAIT_WAKE 있는 PoRequestPowerIrp)를 PDO로 보내도록 요청합니다. 요청에서 정책 소유자는 콜백 루틴을 지정합니다( IoCompletion 루틴과 동일하지 않음).

  2. 전원 관리자는 I/O 관리자를 통해 IRP를 디바이스 스택의 맨 위로 보냅니다.

  3. 드라이버는 IoCompletion 루틴을 설정하고 버스 드라이버에 도달할 때까지 IRP를 전달합니다.

  4. 버스 드라이버는 가능한 경우 물리적 디바이스에서 절전 모드 해제를 사용하도록 설정하고 IRP를 보류 중으로 표시합니다. 필요한 경우 부모에 대한 대기/절전 모드 해제 IRP도 요청합니다.

  5. 나중에 외부 절 해제 신호가 도착합니다.

  6. 버스 드라이버가 IRP_MN_WAIT_WAKE 완료합니다.

  7. I/O 관리자는 드라이버가 IRP를 스택 아래로 전달함에 따라 설정된 IoCompletion 루틴을 호출합니다.

  8. I/O 관리자는 IRP를 요청할 때 정책 소유자가 설정한 콜백 루틴을 호출합니다.

IRP_MN_WAIT_WAKE 요청은 디바이스 또는 시스템의 전원 상태를 변경하지 않습니다. 디바이스에서 절전 모드 해제를 사용하도록 설정하기만 하면 나중에 디바이스가 적절한 절전 모드 상태가 되면 외부 신호로 인해 디바이스(및 시스템)가 깨어날 수 있습니다.

절전 모드 해제 신호가 도착하면 디바이스가 시스템 절전 모드를 해제하든 자체에서만 작동하든 드라이버의 동작은 동일합니다. 디바이스가 절전 모드 해제를 사용하도록 설정되어 있고 시스템이 디바이스가 절전 모드를 해제할 수 있는 절전 모드 상태인 경우 디바이스는 시스템을 깨우게 됩니다. 디바이스가 절전 모드 해제를 사용하도록 설정되어 있고 시스템이 작동 상태에 있는 경우 디바이스만 절전 모드에서 해제됩니다.

컴퓨터와 디바이스는 특히 전원 평면과 관련하여 디자인이 다르기 때문에 지원되는 시스템 및 디바이스 전원 상태와 대기/절전 모드 해제를 지원할 수 있는 상태는 모든 하드웨어 구성에서 동일하지 않습니다. 따라서 디바이스 및 모든 버스 드라이버에 대한 전원 정책을 소유하는 모든 드라이버는 실행 중인 개별 구성의 기능에 주의해야 합니다. 자세한 내용은 디바이스가 시스템을 절전 모드에서 해제할 수 있는지 여부를 확인합니다.

대기/절전 모드 해제 작업에 대한 자세한 내용은 디바이스 트리를 통한 대기/절전 모드 해제 IRP 경로 이해대기/절전 모드 해제 IRP 완료 개요를 참조하세요.