KeSetTargetProcessorDpc 函式 (ntddk.h)

KeSetTargetProcessorDpc 例程會指定將執行 DPC 例程的處理器。

語法

void KeSetTargetProcessorDpc(
  [in, out] PRKDPC Dpc,
  [in]      CCHAR  Number
);

參數

[in, out] Dpc

呼叫端 DPC 物件的指標, KeInitializeDpc 已經初始化。

[in] Number

指定 DPC 應排入佇列和執行的目標處理器之以零起始的數目。

傳回值

備註

在多處理器系統上,每個處理器都有自己的 DPC 佇列。 KeSetTargetProcessorDpc 例程會指定當驅動程式呼叫 KeInsertQueueDpcIoRequestDpc 時,系統應該使用的處理器佇列,以將 DPC 排入佇列以供稍後執行。

從 Windows Vista 開始,您也可以使用 KeSetTargetProcessorDpc 來指定 線程 DPC 的目標處理器。

KeSetTargetProcessorDpc 的呼叫,會在 DPC 物件排入佇列之後發生,不會影響要執行之 DPC 例程的處理器選取。 若要控制目標處理器的選取範圍,必須在呼叫排入 DPC 物件的 KeInsertQueueDpcIoRequestDpc 之前發生 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 任何層級

另請參閱

IoRequestDpc

KeGetCurrentProcessorNumber

KeInitializeDpc

KeInsertQueueDpc

KeSetImportanceDpc

KeSetTargetProcessorDpcEx