次の方法で共有


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 に渡され、から返されるものと正確に一致する必要があります。 ドライバーは、割り当てられた共通バッファーの一部を解放できません。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する IrqlDispatch(wdm)

関連項目

AllocateCommonBuffer

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter