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 |