次の方法で共有


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)

こちらもご覧ください

AllocateCommonBuffer

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter