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


Функция PoSetDeviceBusyEx (ntifs.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)
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень

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

IRP_MN_SET_POWER

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy

PoStartDeviceBusy