Função PoQueryWatchdogTime (ntifs.h)

A rotina PoQueryWatchdogTime indica se o power manager habilitou um contador de tempo limite de watchdog para qualquer IRP de energia que esteja atualmente atribuído à pilha de dispositivos.

Sintaxe

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

Parâmetros

[in] Pdo

Um ponteiro para um PDO (objeto de dispositivo físico). Esse parâmetro aponta para uma estrutura DEVICE_OBJECT que representa um dispositivo físico.

[out] SecondsRemaining

Um ponteiro para um local no qual a rotina grava o tempo, em segundos, que permanece antes que o próximo tempo limite do power watchdog seja definido para ocorrer.

Retornar valor

PoQueryWatchdogTime retornará TRUE se um IRP de energia habilitado para watchdog estiver atualmente atribuído à pilha de dispositivos. Caso contrário, retornará FALSE.

Comentários

Essa rotina permite que os drivers do modo kernel monitorem os contadores de tempo limite de watchdog que o power manager habilitou para controlar os IRPs de energia que ele emitiu. Se um ou mais contadores de tempo limite de watchdog estiverem habilitados no momento, a rotina retornará TRUE e fornecerá o tempo restante antes do próximo tempo limite.

Por exemplo, um driver que enfrenta atrasos ao desligar um dispositivo pode chamar essa rotina para determinar quanto tempo permanece antes que o driver precise responder a um IRP de energia para evitar um desligamento controlado (um bug marcar) do sistema operacional.

O power manager define um contador de tempo limite de watchdog quando emite um IRP de energia para a pilha de dispositivos. O período de tempo limite para esse contador normalmente é de vários minutos. Se um dispositivo na pilha não responder e fizer com que o IRP parasse durante o período de tempo limite, o power manager tratará essa condição como um erro irrecuperável e iniciará um desligamento controlado do sistema operacional.

Se mais de um tempo limite do Power Watchdog estiver habilitado no momento, a rotina definirá *SecondsRemaining como o tempo restante para o próximo tempo limite.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclui Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Confira também

DEVICE_OBJECT