KeSetTargetProcessorDpc 函式 (wdm.h)
KeSetTargetProcessorDpc 例程會指定將執行 DPC 例程的處理器。
語法
void KeSetTargetProcessorDpc(
[in, out] PRKDPC Dpc,
[in] CCHAR Number
);
參數
[in, out] Dpc
呼叫端的 DPC 物件的指標, KeInitializeDpc 已經初始化。
[in] Number
指定 DPC 應排入佇列和執行的目標處理器以零起始的數目。
傳回值
無
備註
在多處理器系統上,每個處理器都有自己的 DPC 佇列。 KeSetTargetProcessorDpc 例程會指定當驅動程式呼叫 KeInsertQueueDpc 或 IoRequestDpc 將 DPC 排入佇列時,系統應該使用的處理器佇列。
從 Windows Vista 開始,您也可以使用 KeSetTargetProcessorDpc 來指定 線程 DPC 的目標處理器。
對 KeSetTargetProcessorDpcEx 的呼叫,會在 DPC 物件排入佇列之後發生,對要執行的 DPC 例程選取沒有作用。 若要控制目標處理器的選取範圍,必須在呼叫 KeInsertQueueDpc 或排入 DPC 物件的 IoRequestDpc 之前發生 KeSetTargetProcessorDpc 呼叫。
如需 DPC 佇列的詳細資訊,請參閱 DPC 佇列的組織。
Windows 7 和更新版本的 Windows 支援處理器群組。 設計用來處理處理器群組相關信息的驅動程序應該使用 KeSetTargetProcessorDpcEx 例程,這個例程會指定處理器群組,而不是未指定處理器群組的 KeSetTargetProcessorDpc。 不過,Windows 7 和更新版本中 KeSetTargetProcessorDpc 的實作可為舊版 Windows 所撰寫的驅動程式提供相容性,這些驅動程式不支持處理器群組。 在此實作中,如果 Number 小於群組 0 中作用中邏輯處理器的數目, KeSetTargetProcessorDpc 會將 DPC 的目標設定為 Number 所指定的群組 0 中的處理器。 否則,DPC 目標不會變更。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |