次の方法で共有


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

FreeMapRegisters ルーチンは、AllocateAdapterChannel の呼び出しから保存された一連のマップ レジスタを解放します。

構文

PFREE_MAP_REGISTERS PfreeMapRegisters;

void PfreeMapRegisters(
  [in] PDMA_ADAPTER DmaAdapter,
  [in] PVOID MapRegisterBase,
  [in] ULONG NumberOfMapRegisters
)
{...}

パラメーター

[in] DmaAdapter

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

[in] MapRegisterBase

DMA 操作に割り当てられたマップ レジスタを指定します。 システムは、ドライバーの AdapterControl ルーチンにこの値を渡します。

[in] NumberOfMapRegisters

解放するマップ レジスタの数を指定します。 この値は 、AllocateAdapterChannel の以前の呼び出しで指定された番号と一致する必要があります。

戻り値

なし

解説

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

バス マスター デバイスのドライバーが現在のパケット ベースの DMA 転送要求を完了すると、 FreeMapRegisters を呼び出して 、AllocateAdapterChannel の呼び出しによって以前に割り当てられ、 その AdapterControl ルーチンが DeallocateObjectKeepRegisters を返したために保持されたマップ レジスタを解放します。 ドライバーは、FlushAdapterBuffers を呼び出した後に FreeMapRegisters を呼び出す必要があります。

要件

要件
サポートされている最小のクライアント 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

IoGetDmaAdapter

MapTransfer