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


Макрос PoSetDeviceBusy (wdm.h)

Макрос PoSetDeviceBusy уведомляет диспетчер питания о том, что устройство, связанное с IdlePointer, занято.

Синтаксис

void PoSetDeviceBusy(
  [in, out]  IdlePointer
);

Параметры

[in, out] IdlePointer

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

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

None

Remarks

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

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

PoSetDeviceBusy сообщает, что устройство занято, чтобы диспетчер питания смог перезапустить обратный отсчет простоя. Если устройство не выключено, PoSetDeviceBusy не изменяет свое состояние. Это означает, что система не отправляет запрос на включение.

Драйвер должен вызывать PoSetDeviceBusy при каждом запросе ввода-вывода.

Требования

Требование Значение
Заголовок wdm.h (включая Wdm.h)
IRQL Любой уровень