PoSetSystemWake 함수(wdm.h)

PoSetSystemWake 루틴은 지정된 IRP를 절전 상태에서 시스템을 해제하는 데 기여한 것으로 표시합니다.

구문

void PoSetSystemWake(
  [in, out] PIRP Irp
);

매개 변수

[in, out] Irp

대기/절전 모드 해제 IRP에 대한 포인터입니다.

반환 값

없음

설명

드라이버는 PoSetSystemWake 를 호출하여 IRP_MN_WAIT_WAKE IRP를 절전 모드 상태에서 시스템을 해제하는 데 기여하는 것으로 표시합니다. 기본적으로 대기/절전 모드 해제 IRP는 디바이스 절전 모드 해제 IRP로 간주됩니다. 대기/절전 모드 해제 체인의 터미널 디바이스는 시스템을 깨웠는지 확인하고 터미널 대기/절전 모드 해제 IRP에 대해 PoSetSystemWake 를 호출해야 합니다. 드라이버가 IRP에서 PoSetSystemWake 를 호출하면 절전 모드 상태에서 시스템을 해제하는 데 기여한 것으로 표시됩니다. 스택에 있는 하나의 드라이버만 이 루틴을 호출해야 하며 일반적으로 드라이버 스택의 버스 드라이버여야 합니다.

대기/절전 모드 해제 체인의 다른 모든 드라이버는 완료 시 자체 대기/절전 모드 해제 IRP에 대해 PoGetSystemWake 를 호출하여 완료하려는 모든 자식 대기/절전 모드 해제 IRP에서 PoSetSystemWake 를 호출해야 하는지 여부를 결정할 수 있습니다. 이렇게 하면 시스템 절전 모드 해제 정보가 대기/절전 모드 해제 체인 전체에서 제대로 진행됩니다.

대기/절전 모드 해제 IRP가 완료되면 전원 관리자는 IRP가 시스템 절전 모드 해제 IRP로 표시되는지 확인합니다. IRP가 시스템 절전 모드 해제 IRP로 표시되면 전원 관리자는 시스템을 깨운 디바이스의 내부 목록에 IRP를 추가합니다. 그러나 전원 관리자는 시스템에서 작동하는 가장 구체적인 디바이스만 추적합니다. 예를 들어 디바이스 A가 시스템을 깨운 디바이스로 추가된 다음 디바이스 A의 자식인 디바이스 B도 추가된 경우 전원 관리자는 디바이스 B가 가장 구체적이기 때문에 디바이스 B만 목록에 유지합니다. 전원 관리자가 시스템을 깨운 가장 구체적인 디바이스를 확인할 수 없는 경우 전원 관리자는 시스템을 깨웠다고 보고한 디바이스를 둘 이상 추적할 수 있습니다.

전원 관리자는 시스템을 깨운 디바이스에 대한 정보를 포함하는 ETW(Windows용 이벤트 추적) 이벤트(전역 시스템 채널에서 볼 수 있습니다)를 기록합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

추가 정보

PoGetSystemWake