PoSetDeviceBusyEx 함수(wdm.h)

PoSetDeviceBusyEx 루틴은 지정된 유휴 카운터와 연결된 디바이스가 사용 중임을 전원 관리자에게 알릴 수 있습니다.

구문

void PoSetDeviceBusyEx(
  [in, out] PULONG IdlePointer
);

매개 변수

[in, out] IdlePointer

유휴 카운터에 대한 포인터입니다. 이는 이전에 PoRegisterDeviceForIdleDetection 루틴에서 반환된 포인터 값입니다. PoRegisterDeviceForIdleDetectionNULL 포인터를 반환할 수 있으므로 PoSetDeviceBusyEx를 호출하기 전에 호출자는 포인터가 NULL이 아닌지 확인해야 합니다.

반환 값

없음

설명

이 루틴은 PoSetDeviceBusy 매크로를 직접 대체합니다. Sp1(서비스 팩 1) 이상 버전의 Windows를 사용하여 Windows Vista용 새 드라이버 코드를 작성하는 경우 PoSetDeviceBusy 대신 PoSetDeviceBusyEx 를 호출 합니다.

드라이버는 PoSetDeviceBusyExPoRegisterDeviceForIdleDetection 루틴을 호출하여 디바이스에 대한 시스템 유휴 검색을 사용하도록 설정합니다. 유휴 검색에 등록된 디바이스가 드라이버 지정 제한 시간 동안 유휴 상태로 유지되는 경우 전원 관리자는 요청된 절전 모드 상태로 전환하기 위해 IRP_MN_SET_POWER 요청을 보냅니다.

PoSetDeviceBusyEx 는 전원 관리자가 유휴 카운트다운을 다시 시작할 수 있도록 디바이스가 사용 중이라고 보고합니다. 디바이스가 절전 상태인 경우 PoSetDeviceBusyEx 는 디바이스의 상태를 변경하지 않습니다. 즉, 시스템에서 IRP_MN_SET_POWER 요청을 보내 디바이스를 깨우지 않습니다.

PoSetDeviceBusyEx 는 유휴 카운터의 제한 시간에 비해 비교적 짧은 I/O 작업에 사용하도록 설계되었습니다. 이 기간을 초과할 수 있는 더 긴 작업의 경우 PoStartDeviceBusyPoEndDeviceBusy 루틴을 대신 사용합니다.

간단한 I/O 작업에 대해 여러 요청을 하는 드라이버는 수행되는 모든 I/O 요청에 대해 PoSetDeviceBusyEx 를 호출해야 합니다.

요구 사항

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

추가 정보

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy