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

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

PoEndDeviceBusy

PoRegisterDeviceForIdleDetection

PoSetDeviceBusy