次の方法で共有


PFREE_ADAPTER_CHANNEL コールバック関数 (wdm.h)

FreeAdapterChannel ルーチンは、ドライバーが現在の IRP を満たすために必要なすべての DMA 操作を完了したときに、システム DMA コントローラーを解放します。

構文

PFREE_ADAPTER_CHANNEL PfreeAdapterChannel;

void PfreeAdapterChannel(
  [in] PDMA_ADAPTER DmaAdapter
)
{...}

パラメーター

[in] DmaAdapter

バス マスター アダプターまたは DMA コントローラーを表す IoGetDmaAdapter によって返されるDMA_ADAPTER構造体へのポインター。

戻り値

なし

解説

FreeAdapterChannel は、名前で直接呼び出すことができるシステム ルーチンではありません。 このルーチンは、 DMA_OPERATIONS 構造体で返されるアドレスからのポインターによってのみ呼び出されます。 ドライバーは、 IoGetDmaAdapter を呼び出して、このルーチンのアドレスを取得します。

ドライバーは、すべてのデータを転送し、 FlushAdapterBuffers を呼び出した後、 FreeAdapterChannel を呼び出して、 AllocateAdapterChannel の呼び出しで以前に割り当てられたシステム DMA コントローラーを解放します。

FreeAdapterChannel はAllocateAdapterChannel の以前の呼び出しによって割り当てられたすべてのマップ レジスタを解放します。 ドライバーは、 その AdapterControl ルーチンが KeepObject を返す場合にのみ、このルーチンを呼び出します。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム デスクトップ
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
IRQL DISPATCH_LEVEL
DDI コンプライアンス規則 IrqlDispatch(storport)、IrqlDispatch(storport)、 IrqlDispatch(wdm)

こちらもご覧ください

AllocateAdapterChannel

DMA_ADAPTER

DMA_OPERATIONS

FlushAdapterBuffers

FreeMapRegisters

IoGetDmaAdapter

MapTransfer