Поделиться через


Функция PoFxSetDeviceIdleTimeout (wdm.h)

Подпрограмма PoFxSetDeviceIdleTimeout задает минимальный интервал времени с момента, когда последний компонент устройства переходит в состояние простоя, до того, когда платформа управления питанием (PoFx) вызывает подпрограмму DevicePowerNotRequiredCallback драйвера.

Синтаксис

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

Параметры

[in] Handle

Дескриптор, представляющий регистрацию устройства с помощью PoFx. Драйвер устройства ранее получил этот дескриптор из подпрограммы PoFxRegisterDevice .

[in] IdleTimeout

Интервал времени ожидания простоя в 100-наносекундных единицах. Дополнительные сведения см. в подразделе "Примечания".

Возвращаемое значение

None

Remarks

Эта подпрограмма задает интервал времени ожидания для PoFx, который будет применяться к будущим вызовам процедуры обратного вызова DevicePowerNotRequiredCallback драйвера. По умолчанию этот интервал времени ожидания равен нулю. В этом случае PoFx может вызвать подпрограмму DevicePowerNotRequiredCallback , как только устройство будет готово к переходу в состояние Dx с низким энергопотреблением. Однако драйвер может предпочесть отложить этот переход и сохранить устройство в состоянии питания 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