PoFxSetDeviceIdleTimeout 함수(wdm.h)

PoFxSetDeviceIdleTimeout 루틴은 디바이스의 마지막 구성 요소가 유휴 상태로 전환될 때부터 PoFx(전원 관리 프레임워크)가 드라이버의 DevicePowerNotRequiredCallback 루틴을 호출할 때까지의 최소 시간 간격을 지정합니다.

구문

void PoFxSetDeviceIdleTimeout(
  [in] POHANDLE  Handle,
  [in] ULONGLONG IdleTimeout
);

매개 변수

[in] Handle

PoFx를 사용하여 디바이스 등록을 나타내는 핸들입니다. 디바이스 드라이버는 이전에 PoFxRegisterDevice 루틴에서 이 핸들을 받았습니다.

[in] IdleTimeout

유휴 시간 제한 간격(100나노초 단위)입니다. 자세한 내용은 설명 부분을 참조하세요.

반환 값

없음

설명

이 루틴은 PoFx가 드라이버의 DevicePowerNotRequiredCallback 콜백 루틴에 대한 향후 호출에 적용할 시간 제한 간격을 지정합니다. 기본적으로 이 시간 제한 간격은 0이며, 이 경우 PoFx는 디바이스가 저전력 Dx 상태로 전환할 준비가 되는 즉시 DevicePowerNotRequiredCallback 루틴을 호출할 수 있습니다. 그러나 드라이버는 이 전환을 지연시키고 추가 시간 제한 간격 동안 디바이스를 D0 전원 상태로 유지하는 것을 선호할 수 있습니다. 이 경우 시간 제한 간격이 끝나기 전에 디바이스가 활성화되어 D0 상태를 유지해야 하는 경우 보류 중인 DevicePowerNotRequiredCallback 호출이 더 이상 필요하지 않으며 PoFx에서 취소됩니다.

예를 들어 성능을 개선하고 마모를 줄이기 위해 스토리지 디바이스 드라이버는 드라이브가 충분히 오랫동안 유휴 상태가 될 때까지 회전 드라이브가 D3에 들어가고 속도가 느려지는 것을 방지할 수 있습니다. 이 드라이버의 DevicePowerNotRequiredCallback 콜백 루틴 구현을 간소화하기 위해 PoFxSetDeviceIdleTimeout 루틴을 사용하면 드라이버가 타이머를 설정하지 않고도 D3 전환을 자동으로 지연할 수 있습니다.

시간 제한 간격은 디바이스의 모든 구성 요소가 유휴 상태로의 전환을 완료할 때 시작됩니다. 일반적으로 PoFx는 시간 제한 간격이 끝날 때까지 대기하여 DevicePowerNotRequiredCallback 루틴을 호출합니다. 그러나 PoFx가 저전력 시스템 상태로 진입할 준비를 하고 있는 경우 PoFx는 제한 시간 간격을 일찍 종료할 수 있습니다. 어쨌든 PoFx가 드라이버의 DevicePowerNotRequiredCallback 루틴을 호출할 때 드라이버는 추가 지연 없이 저전력 Dx 상태로 전환해야 합니다.

디바이스 드라이버는 조건 변경 시 유휴 시간 제한 간격을 변경해야 할 때마다 PoFxSetDeviceIdleTimeout 을 호출할 수 있습니다. 각 호출 후 드라이버가 PoFxSetDeviceIdleTimeout 을 다시 호출하여 업데이트할 때까지 새 유휴 시간 제한 간격이 적용됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 사용하여 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h
라이브러리 Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

추가 정보

DevicePowerNotRequiredCallback

PoFxRegisterDevice