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

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

Синтаксис

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

Параметры

[in, out] IdlePointer

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

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

None

Remarks

Подпрограммы PoStartDeviceBusy и PoEndDeviceBusy отмечают начало и конец периода времени, в течение которого устройство занято. За каждым вызовом PoStartDeviceBusy должен следовать соответствующий вызов PoEndDeviceBusy.

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

Вместо использования процедур PoStartDeviceBusy и PoEndDeviceBusy для сброса счетчика простоя можно вызвать подпрограмму PoSetDeviceBusyEx (или макрос PoSetDeviceBusy ). Чтобы отключить счетчик простоя в течение длительного периода занятости, драйвер может вызвать подпрограмму PoRegisterDeviceForIdleDetection , чтобы отключить и включить уведомления о простое в начале и конце периода занятости. Однако для этой цели обычно удобнее использовать PoStartDeviceBusy и PoEndDeviceBusy , и эти процедуры следует использовать в новом коде, написанном для Windows 7 и более поздних версий Windows.

Требования

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

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

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy