KeQueryDpcWatchdogInformation 函数 (wdm.h)
KeQueryDpcWatchdogInformation 例程返回当前处理器的延迟过程调用 (DPC) 监视器计时器值。
语法
NTSTATUS KeQueryDpcWatchdogInformation(
[out] PKDPC_WATCHDOG_INFORMATION WatchdogInformation
);
参数
[out] WatchdogInformation
指向调用方提供的 KDPC_WATCHDOG_INFORMATION 结构的指针。 该例程将当前的 DPC 监视器计时器值写入此结构。
返回值
KeQueryDpcWatchdogInformation 返回 NTSTATUS 值。 可能的返回值包括以下状态代码。
返回代码 | 描述 |
---|---|
|
在当前处理器上运行 DPC 时调用了 KeQueryDpcWatchdogInformation。 |
|
调用 KeQueryDpcWatchdogInformation 时,当前处理器未运行 DPC。 |
言论
KeQueryDpcWatchdogInformation 例程可以从 DPC 例程或 IRQL= DISPATCH_LEVEL 调用,以确定在发生 DPC 超时之前保留的时间量。 作系统实现 DPC 监视器计时器,以检测单个 DPC 例程何时运行太长,或者当一系列排队的 DPC 例程运行时间过长时。 如果启用了 DPC 超时错误,并且 DPC 例程超过单个例程的时间限制,或者一系列 DPC 例程超过聚合时间限制,则会发生 DPC_WATCHDOG_VIOLATION (0x133) bug 检查。
在当前处理器上的 IRQL= DISPATCH_LEVEL 或更高版本上运行或调用 DPC 时,必须调用 KeQueryDpcWatchdogInformation。 否则,调用将失败并返回STATUS_UNSUCCESSFUL。
DPC 例程应仅在短时间内运行,并且应尽可能多地将处理委托给工作线程。 为了避免降低系统响应能力,每次调用系统时,典型的 DPC 例程应运行不超过 100 微秒。 有关详细信息,请参阅 编写 DPC 例程指南。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 普遍 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |