次の方法で共有


KeSetTargetProcessorDpc 関数 (ntddk.h)

KeSetTargetProcessorDpc ルーチンは、DPC ルーチンが実行されるプロセッサを指定します。

構文

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

パラメーター

[in, out] Dpc

KeInitializeDpc が既に初期化されている呼び出し元の DPC オブジェクトへのポインター。

[in] Number

DPC をキューに入れ、実行するターゲット プロセッサの 0 から始まる番号を指定します。

戻り値

なし

解説

マルチプロセッサ システムでは、各プロセッサに独自の DPC キューがあります。 KeSetTargetProcessorDpc ルーチンは、ドライバーが後で実行する DPC をキューに入れる KeInsertQueueDpc または IoRequestDpc を呼び出すときにシステムが使用するプロセッサのキューを指定します。

Windows Vista 以降では、 KeSetTargetProcessorDpc を使用して 、スレッド DPC のターゲット プロセッサを指定することもできます。

DPC オブジェクトがキューに登録された後に発生する KeSetTargetProcessorDpc の呼び出しは、DPC ルーチンを実行するためのプロセッサの選択には影響しません。 ターゲット プロセッサの選択を制御するには、DPC オブジェクトをキューに格納する KeInsertQueueDpc または IoRequestDpc の呼び出しの前に、KeSetTargetProcessorDpc 呼び出しを行う必要があります。

DPC キューの詳細については、「 DPC キューの編成」を参照してください。

Windows 7 以降のバージョンの Windows では、プロセッサ グループがサポートされています。 プロセッサ グループに関する情報を処理するように設計されたドライバーでは、 KeSetTargetProcessorDpc ではなく、プロセッサ グループを指定する KeSetTargetProcessorDpcEx ルーチンを使用する必要があります。 ただし、Windows 7 以降のバージョンの Windows での KeSetTargetProcessorDpc の実装では、プロセッサ グループをサポートしていない以前のバージョンの Windows 用に作成されたドライバーとの互換性が提供されます。 この実装では、 Number がグループ 0 のアクティブな論理プロセッサの数より少ない場合、 KeSetTargetProcessorDpc は、DPC のターゲットを 、Number で指定されたグループ 0 のプロセッサに設定します。 それ以外の場合、DPC ターゲットは変更されません。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header ntddk.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル

こちらもご覧ください

IoRequestDpc

KeGetCurrentProcessorNumber

KeInitializeDpc

KeInsertQueueDpc

KeSetImportanceDpc

KeSetTargetProcessorDpcEx