KeSetImportanceDpc 関数 (ntddk.h)
KeSetImportanceDpc ルーチンは、DPC ルーチンを実行する時間を指定します。
構文
void KeSetImportanceDpc(
[in, out] PRKDPC Dpc,
[in] KDPC_IMPORTANCE Importance
);
パラメーター
[in, out] Dpc
呼び出し元の DPC オブジェクトへのポインター。KeInitializeDpc 既に初期化されています。
[in] Importance
次のいずれかのシステム定義値を指定して、KeInsertQueueDpc の動作を決定し、いずれかのルーチンを使用して DPC をキューに入れたときに IoRequestDpc を します。
LowImportance
DPC キューの末尾に DPC を配置し、キューの処理を開始しません。
MediumImportance
DPC キューの末尾に DPC を配置します。 DPC が現在のプロセッサの DPC キューに割り当てられている場合は、すぐにキューの処理を開始します。 MediumImportance は、重要度の既定値です。
MediumHighImportance
DPC キューの末尾に DPC を配置し、キューの処理を直ちに開始します。 MediumHighImportance は、Windows Vista 以降のバージョンの Windows でのみ使用できます。
HighImportance
DPC キューの先頭に DPC を配置し、キューの処理を直ちに開始します。
戻り値
何一つ
備考
KeSetImportanceDpc ルーチンは、次の決定によって、キューに入った後に DPC を実行する時間に影響します。
- DPC キュー内の DPC の場所。 通常、KeInsertQueueDpc および ioRequestDpc ルーチン は、キューの末尾に DPC を配置します。 ドライバーが最初に Importance = HighImportanceで KeSetImportanceDpc を呼び出した場合、KeInsertQueueDpc と IoRequestDpc は、キューの先頭に DPC を配置します。
- システムが DPC キューの処理を開始したとき。 通常、KeInsertQueueDpc と IoRequestDpc、現在のプロセッサの DPC キューの処理を直ちに開始します。 ドライバーは、この動作を変更するために、重要度 に異なる値を指定できます。
Windows Vista 以降のバージョンの Windows オペレーティング システムの場合は、スレッド DPC KeSetImportanceDpc を使用できます。 呼び出し元 重要度 を HighImportance に設定すると、DPC はキューの先頭に配置されます。それ以外の場合は、末尾に配置されます。 このルーチンは、スレッド化された DPC キューが処理されるときには影響しません。 スレッド DPC は、IRQL = PASSIVE_LEVELの専用スレッドによって常に処理されます。 スレッド化された DPC の詳細については、「スレッド DPCの概要」を参照してください。
ドライバーは、KeInsertQueueDpc を呼び出し、IoRequestDpc を する前に、KeSetImportanceDpc を呼び出す必要があることに注意してください。
システムによる DPC キューの処理方法の詳細については、「DPC キューの編成」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntddk.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任意のレベル |
関連項目
IoRequestDpc の
KeInitializeDpc の
KeSetTargetProcessorDpc の