次の方法で共有


IoFreeIrp 関数 (wdm.h)

IoFreeIrp ルーチンは、呼び出し元の IoCompletion ルーチンから呼び出し元によって割り当てられた IRP を解放します。

構文

void IoFreeIrp(
  [in] PIRP Irp
);

パラメーター

[in] Irp

解放される IRP へのポインター。

戻り値

なし

解説

このルーチンは、 IoAllocateIrp または IoBuildAsynchronousFsdRequest に対する逆数です。 解放された IRP は、呼び出し元によって割り当てられている必要があります。

このルーチンは、呼び出し元が関連付けられている IRP のSTATUS_MORE_PROCESSING_REQUIREDを返す IoCompletion ルーチンを設定する IoMakeAssociatedIrp で割り当てられた IRP も解放します。

IoFreeIrp では、IRP にアタッチされている可能性のある MDL は解放されません。 IRP を解放するドライバーは、これらの MDL を明示的に解放する必要があります。 さらに、MDL で記述されている物理ページがロックされている場合、ドライバーは MDL を解放する前にページのロックを解除する必要があります。 ただし、ドライバーはこれらのページのマップを明示的に解除する必要はありません。 代わりに、 IoFreeMdl は MDL を解放するとページのマップを自動的に解除します。 MDL チェーンを解放する方法を示すコード例については、「 MDL の使用」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), IoAllocateFree(wdm), IoBuildDeviceControlNoFree(wdm), IoBuildFsdFree(wdm), IoBuildSynchronousFsdRequestNoFree(wdm), IoFreeIrp(storport)

こちらもご覧ください

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoCompletion

IoMakeAssociatedIrp

IoSetCompletionRoutine