KeSetTargetProcessorDpc 函式 (ntddk.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 的目標處理器。
對 KeSetTargetProcessorDpc 的呼叫,會在 DPC 物件排入佇列之後發生,不會影響要執行之 DPC 例程的處理器選取。 若要控制目標處理器的選取範圍,必須在呼叫排入 DPC 物件的 KeInsertQueueDpc 或 IoRequestDpc 之前發生 KeSetTargetProcessorDpc 呼叫。
如需 DPC 佇列的詳細資訊,請參閱 DPC 佇列的組織。
Windows 7 和更新版本的 Windows 支援處理器群組。 設計來處理處理器群組相關信息的驅動程序應該使用 KeSetTargetProcessorDpcEx 例程,它會指定處理器群組,而不是未指定處理器群組的 KeSetTargetProcessorDpc。 不過,在 Windows 7 和更新版本的 Windows 中 實作 KeSetTargetProcessorDpc 可為舊版 Windows 所撰寫的驅動程式提供相容性,這些驅動程式不支援處理器群組。 在此實作中,如果 Number 小於群組 0 的作用中邏輯處理器數目, KeSetTargetProcessorDpc 會將 DPC 的目標設定為 Number 所指定群組 0 中的處理器。 否則,DPC 目標不會變更。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平台 | Universal |
標頭 | ntddk.h (包含 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |