다음을 통해 공유


대기/절전 모드 작업 개요

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

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

  1. 시스템 및 디바이스가 작동 상태에 있는 동안, 한 디바이스에 대한 전원 정책 소유자가 해당 디바이스를 깨우기 위해 활성화해야 한다고 결정합니다. 전력 정책 소유자는 부 코드 IRP_MN_WAIT_WAKE를 포함한 전원 IRP(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 완료 개요를 참조하세요.