Функция PoQueryWatchdogTime (ntifs.h)

Подпрограмма PoQueryWatchdogTime указывает, включил ли диспетчер питания счетчик времени ожидания наблюдения для любого IRP питания, назначенного в данный момент стеку устройств.

Синтаксис

BOOLEAN PoQueryWatchdogTime(
  [in]  PDEVICE_OBJECT Pdo,
  [out] PULONG         SecondsRemaining
);

Параметры

[in] Pdo

Указатель на объект физического устройства (PDO). Этот параметр указывает на структуру DEVICE_OBJECT , представляющую физическое устройство.

[out] SecondsRemaining

Указатель на расположение, в которое подпрограмма записывает время в секундах, которое остается до следующего тайм-аута наблюдателя за питанием.

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

PoQueryWatchdogTime возвращает значение TRUE, если стеку устройств назначена IRP питания с поддержкой сторожевого устройства. В противном случае возвращается значение FALSE.

Комментарии

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

Например, драйвер, который испытывает задержки при завершении работы устройства, может вызвать эту процедуру, чтобы определить, сколько времени осталось, прежде чем драйвер должен реагировать на IRP питания, чтобы предотвратить управляемое завершение работы (ошибка проверка) операционной системы.

Диспетчер питания устанавливает счетчик времени ожидания наблюдателя, когда он выдает IRP питания стеку устройств. Время ожидания для этого счетчика обычно составляет несколько минут. Если устройство в стеке не отвечает и вызывает остановку IRP в течение периода ожидания, диспетчер управления питанием рассматривает это условие как неустранимую ошибку и инициирует управляемое завершение работы операционной системы.

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

Требования

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

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

DEVICE_OBJECT