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) |