次の方法で共有


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 を解放するドライバーは、これらの MDLs を明示的に解放する必要があります。 さらに、MDL によって記述されている物理ページがロックされている場合、ドライバーは、MDL を解放する前に、ページのロックを解除する必要があります。 ただし、ドライバーはこれらのページのマップを明示的に解除する必要はありません。 代わりに、IoFreeMdl 、MDL を解放するとページのマップが自動的に解除されます。 MDL チェーンを解放する方法を示すコード例については、「MDLの使用」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ 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