KeQueryDpcWatchdogInformation 函数 (wdm.h)

KeQueryDpcWatchdogInformation 例程返回延迟的过程调用 (DPC) 当前处理器的监视器计时器值。

语法

NTSTATUS KeQueryDpcWatchdogInformation(
  [out] PKDPC_WATCHDOG_INFORMATION WatchdogInformation
);

参数

[out] WatchdogInformation

指向调用方提供的 KDPC_WATCHDOG_INFORMATION 结构的指针。 例程将当前 DPC 监视器计时器值写入此结构。

返回值

KeQueryDpcWatchdogInformation 返回 NTSTATUS 值。 可能的返回值包括以下状态代码。

返回代码 说明
STATUS_SUCCESS
在当前处理器上运行 DPC 时调用了 KeQueryDpcWatchdogInformation
STATUS_UNSUCCESSFUL
调用 KeQueryDpcWatchdogInformation 时,当前处理器未运行 DPC。

注解

可以从 DPC 例程或在 IRQL= DISPATCH_LEVEL调用 KeQueryDpcWatchdogInformation 例程,以确定 DPC 超时发生之前剩余的时间量。 操作系统实现 DPC 监视器计时器,以检测单个 DPC 例程运行时间过长,或一系列排队的 DPC 例程运行时间过长。 如果启用了 DPC 超时错误,并且 DPC 例程超出单个例程的时间限制,或者一系列 DPC 例程超出聚合时间限制,则会发生DPC_WATCHDOG_VIOLATION (0x133) bug 检查。

当 DPC 在当前处理器上的 IRQL= DISPATCH_LEVEL 或更高版本下运行或调用时,必须调用 KeQueryDpcWatchdogInformation。 否则,调用将失败并返回STATUS_UNSUCCESSFUL。

DPC 例程应只运行一小段时间,并且应将尽可能多的处理委托给工作线程。 为了避免降低系统响应能力,典型的 DPC 例程每次调用时应运行不超过 100 微秒。 有关详细信息,请参阅 编写 DPC 例程的准则

要求

要求
最低受支持的客户端 从 Windows Vista 开始可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL

另请参阅

KDPC_WATCHDOG_INFORMATION