Функция 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 | Любой уровень |