次の方法で共有


IofCompleteRequest 関数 (wdm.h)

IoCompleteRequest マクロは、呼び出し元が特定の I/O 要求のすべての処理を完了し、指定された IRP を I/O マネージャーに返していることを示します。

IoCompleteRequest IofCompleteRequest ラップされます。

構文

void IofCompleteRequest(
  PIRP  Irp,
  CCHAR PriorityBoost
);

パラメーター

Irp

完了する IRP へのポインター。

PriorityBoost

操作を要求した元のスレッドの実行時優先度をインクリメントするシステム定義の CCHAR 定数を指定します。 この値は、元のスレッドが操作を要求した場合に、ドライバーがすぐに完了できた場合 (要求元のスレッドが I/O の完了を想定した待機に対して補正されない) 場合、または IRP がエラーで完了した場合にIO_NO_INCREMENTされます。 それ以外の場合、PriorityBoost 定数のセット デバイスの種類固有です。 これらの定数については、Ntddk.h または Wdm.h を参照してください。

戻り値

何一つ

備考

ドライバーは、特定の IRP のすべての処理を完了すると、IoCompleteRequestを呼び出します。 I/O マネージャーは、IRP を調べて、上位レベルのドライバーが IRP の IoCompletion ルーチンを設定したかどうかを判断します。 その場合、各 IoCompletion ルーチンが呼び出され、チェーン内のすべての階層化されたドライバーが IRP を完了するまで呼び出されます。

すべてのドライバーが特定の IRP を完了すると、I/O マネージャーは、操作の元の要求元に状態を返します。 ドライバーが作成した IRP を設定する上位レベルのドライバーは、作成した IRP を解放する IoCompletion ルーチンを提供する必要があることに注意してください。

スピン ロック 保持したまま IoCompleteRequest を呼び出すことはありません。 スピン ロックを保持しているときに IRP を完了しようとすると、デッドロックが発生する可能性があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する CompleteRequest、CompleteRequestStatusCheck、DoubleCompletion(wdm)HwStorPortProhibitedDDDIs(storport)、IoAllocateComplete、IoBuildFsdComplete、IoSetCompletionExCompleteIrp、 IrpProcessingComplete(wdm), MarkIrpPending, PendedCompletedRequest(wdm), PendedCompletedRequest2, PendedCompletedRequest3, PendedCompletedRequestEx(wdm), PnpIrpCompletion(wdm) ), SpinLockSafe(storport), SpinLockSafe(wdm), WmiComplete(wdm)

関連項目

IoSetCompletionRoutine