PFREE_COMMON_BUFFER コールバック関数 (wdm.h)
FreeCommonBuffer ルーチンは、AllocateCommonBuffer によって割り当てられた共通バッファーと、バッファーが使用するすべてのリソースを解放します。
構文
PFREE_COMMON_BUFFER PfreeCommonBuffer;
void PfreeCommonBuffer(
[in] PDMA_ADAPTER DmaAdapter,
[in] ULONG Length,
[in] PHYSICAL_ADDRESS LogicalAddress,
[in] PVOID VirtualAddress,
[in] BOOLEAN CacheEnabled
)
{...}
パラメーター
[in] DmaAdapter
バス マスター アダプターまたは DMA コントローラーを表す IoGetDmaAdapter によって返されるDMA_ADAPTER構造体へのポインター。
[in] Length
割り当てを解除するバイト数を指定します。
[in] LogicalAddress
割り当てられたメモリ範囲の論理アドレスを指定します。
[in] VirtualAddress
割り当てられたメモリ範囲の対応する仮想アドレスへのポインター。
[in] CacheEnabled
割り当てられたメモリがキャッシュされているかどうかを示します。
戻り値
なし
解説
FreeCommonBuffer は、名前で直接呼び出すことができるシステム ルーチンではありません。 このルーチンは、 DMA_OPERATIONS 構造体で返されたアドレスからのポインターによってのみ呼び出されます。 ドライバーは、 IoGetDmaAdapter を呼び出して、このルーチンのアドレスを取得します。
共通バッファーを解放するために、ドライバーは FreeCommonBuffer を 呼び出して、その論理アドレスと仮想アドレスの両方のマップを解除します。 FreeCommonBuffer に渡されるパラメーターは、AllocateCommonBuffer に渡され、AllocateCommonBuffer から返されるパラメーターと正確に一致する必要があります。 ドライバーは、割り当てられた共通バッファーの一部を解放できません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | IrqlDispatch(wdm) |