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