KeQueryDpcWatchdogInformation 函式 (wdm.h)

KeQueryDpcWatchdogInformation 例程會傳回目前處理器的延遲過程調用 (DPC) 監視程式定時器值。

語法

NTSTATUS KeQueryDpcWatchdogInformation(
  [out] PKDPC_WATCHDOG_INFORMATION WatchdogInformation
);

參數

[out] WatchdogInformation

呼叫端提供的 KDPC_WATCHDOG_INFORMATION 結構的指標。 例程會將目前的 DPC 監視程式定時器值寫入這個結構。

傳回值

KeQueryDpcWatchdogInformation 會傳回 NTSTATUS 值。 可能的傳回值包括下列狀態代碼。

傳回碼 Description
STATUS_SUCCESS
在目前處理器上執行 DPC 時,會呼叫 KeQueryDpcWatchdogInformation
STATUS_UNSUCCESSFUL
呼叫 KeQueryDpcWatchdogInformation 時,目前的處理器未執行 DPC。

備註

KeQueryDpcWatchdogInformation 例程可以從 DPC 例程或 IRQL= DISPATCH_LEVEL呼叫,以判斷 DPC 逾時之前所保留的時間量。 操作系統會實作 DPC 監視程式定時器,以偵測單一 DPC 例程執行太長的時間,或當一系列佇列的 DPC 例程執行回太久時。 如果已啟用 DPC 逾時錯誤,而且如果 DPC 例程超過單一例程的時間限制,或一系列 DPC 例程超過匯總時間限制,就會發生 DPC_WATCHDOG_VIOLATION (0x133) 錯誤檢查。

當 DPC 在目前處理器上執行或叫用 IRQL= DISPATCH_LEVEL或更新版本時,必須呼叫 KeQueryDpcWatchdogInformation。 否則,呼叫會失敗,並傳回STATUS_UNSUCCESSFUL。

DPC 例程應該只執行短暫的期間,而且應該儘可能將處理委派給背景工作線程。 為了避免降低系統回應性,每次呼叫 DPC 例程時,一般 DPC 例程應該執行不超過 100 毫秒。 如需詳細資訊,請參閱 撰寫 DPC 例程的指導方針

規格需求

需求
最低支援的用戶端 從 Windows Vista 開始提供。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL DISPATCH_LEVEL

另請參閱

KDPC_WATCHDOG_INFORMATION