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


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

Подпрограмма PoSetDeviceBusyEx уведомляет диспетчер питания о том, что устройство, связанное с указанным счетчиком простоя, занято.

Синтаксис

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

Параметры

[in, out] IdlePointer

Указатель на счетчик простоя. Это значение указателя, которое ранее возвращалось подпрограммой PoRegisterDeviceForIdleDetection . Так как PoRegisterDeviceForIdleDetection может возвращать указатель NULL , вызывающий объект должен убедиться, что указатель не равен NULL , прежде чем вызывать PoSetDeviceBusyEx.

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

None

Remarks

Эта подпрограмма является прямой заменой макроса PoSetDeviceBusy . Если вы пишете новый код драйвера для Windows Vista с пакетом обновления 1 (SP1) и более поздними версиями Windows, вызовите PoSetDeviceBusyEx вместо PoSetDeviceBusy.

Драйвер вызывает процедуры PoSetDeviceBusyEx и PoRegisterDeviceForIdleDetection , чтобы включить обнаружение простоя системы для своего устройства. Если устройство, зарегистрированное для обнаружения бездействия, остается бездействующим в течение указанного драйвером периода ожидания, диспетчер питания отправляет IRP_MN_SET_POWER запрос на перевод устройства в запрошенное состояние спящего режима.

PoSetDeviceBusyEx сообщает, что устройство занято, чтобы диспетчер питания смог перезапустить обратный отсчет бездействия. Если устройство находится в спящем режиме, PoSetDeviceBusyEx не изменяет состояние устройства. Это означает, что система не отправляет IRP_MN_SET_POWER запрос на пробуждение устройства.

PoSetDeviceBusyEx предназначен для использования с операциями ввода-вывода, которые являются относительно короткими по сравнению с периодом тайм-аута счетчика простоя. Для более длительных операций, которые могут превышать этот период, используйте вместо этого подпрограммы PoStartDeviceBusy и PoEndDeviceBusy .

Драйвер, который выполняет несколько запросов для коротких операций ввода-вывода, должен вызывать PoSetDeviceBusyEx для каждого запроса ввода-вывода, который он создает.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows Vista с пакетом обновления 1 (SP1).
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень

См. также раздел

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy