KeSetTargetProcessorDpcEx 関数 (wdm.h)
KeSetTargetProcessorDpcEx ルーチンは、DPC ルーチンを実行するプロセッサを指定します。
構文
NTSTATUS KeSetTargetProcessorDpcEx(
[in, out] PKDPC Dpc,
[in] PPROCESSOR_NUMBER ProcNumber
);
パラメーター
[in, out] Dpc
呼び出し元の DPC オブジェクトへのポインター。 このパラメーターは、DPC オブジェクトを表す不透明なシステム構造である KDPC 構造体を指します。 このオブジェクトは、KeInitializeDpc ルーチンによって初期化されている必要があります。
[in] ProcNumber
DPC がキューに登録されて実行されるターゲット プロセッサを識別する呼び出し元によって割り当てられた PROCESSOR_NUMBER 構造体へのポインター。 この構造体は、このグループ内のグループとプロセッサを指定します。
戻り値
KeSetTargetProcessorDpcEx 呼び出しが成功した場合、STATUS_SUCCESSを返。 それ以外の場合は、次が返されます。
リターン コード | 形容 |
---|---|
|
ProcNumber パラメーターは、無効なプロセッサ番号を指しています。 |
備考
マルチプロセッサ システム内の各プロセッサには、独自の DPC キューがあります。 KeSetTargetProcessorDpcEx は、ドライバーが KeInsertQueueDpc を呼び出すか、IoRequestDpc ルーチンを して後で実行する DPC をキューに入れるときに、システムが使用するプロセッサのキューを指定します。
KeSetTargetProcessorDpcEx では、通常の DPC と スレッド DPC の両方のターゲット プロセッサを指定。 通常の DPC は優先度の高いスレッドでも割り込めませんが、十分に優先度の高いタイム クリティカルなスレッドによってスレッド DPC が割り込まれる可能性があります。
関連ルーチン KeSetTargetProcessorDpcは DPC のターゲット プロセッサを指定しますが、このルーチンは、KeSetTargetProcessorDpcEx とは異なり、ターゲット プロセッサのグループを指定しません。 Windows 7 以降では、KeSetTargetProcessorDpc ターゲット プロセッサがグループ 0 に属していることを前提としています。 この動作により、KeSetTargetProcessorDpc 呼び出し、グループ指向機能を使用しない既存のドライバーが、2 つ以上のグループを持つマルチプロセッサ システムで正しく実行されるようになります。 ただし、Windows 7 以降のバージョンの Windows オペレーティング システムでグループ指向機能を使用するドライバーは、KeSetTargetProcessorDpc ではなく、KeSetTargetProcessorDpcEx呼び出す必要があります。
DPC オブジェクトがキューに入った後に発生 KeSetTargetProcessorDpcEx の呼び出しは、実行する DPC ルーチンのプロセッサの選択には影響しません。 ターゲット プロセッサの選択を制御するには、KeSetTargetProcessorDpcEx 呼び出しは、KeInsertQueueDpc または DPC オブジェクトをキューに格納する IoRequestDpc を する前に発生する必要があります。
DPC キューの詳細については、「DPC キューの編成」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任意のレベル |
関連項目
IoRequestDpc の
KDPC を する
KeInitializeDpc の
KeSetTargetProcessorDpc の