次の方法で共有


EVT_WDF_PROGRAM_DMA コールバック関数 (wdfdmatransaction.h)

[KMDF にのみ適用]

フレームワーク ベースのドライバーの EvtProgramDma イベント コールバック関数は、DMA 転送操作を実行するように指定されたデバイスをプログラムします。

構文

EVT_WDF_PROGRAM_DMA EvtWdfProgramDma;

BOOLEAN EvtWdfProgramDma(
  [in] WDFDMATRANSACTION Transaction,
  [in] WDFDEVICE Device,
  [in] WDFCONTEXT Context,
  [in] WDF_DMA_DIRECTION Direction,
  [in] PSCATTER_GATHER_LIST SgList
)
{...}

パラメーター

[in] Transaction

現在の DMA トランザクションを表す DMA トランザクション オブジェクトへのハンドル。

[in] Device

フレームワーク デバイス オブジェクトへのハンドル。

[in] Context

WdfDmaTransactionExecute の以前の呼び出しでドライバーが指定したコンテキスト ポインター。

[in] Direction

DMA 転送 操作の方向を指定するWDF_DMA_DIRECTION型指定された値。

[in] SgList

SCATTER_GATHER_LIST構造体へのポインター。

戻り値

EvtProgramDma コールバック関数は、DMA 転送操作が正常に開始された場合に TRUE を返す必要があります。 それ以外の場合、このコールバック関数は FALSE を返す必要があります。 ただし、フレームワークは現在、戻り値を無視しています。

注釈

ドライバーは、WdfDmaTransactionInitializeUsingRequest または WdfDmaTransactionInitialize を呼び出して、EvtProgramDma イベント コールバック関数を登録します。

DMA 転送が使用可能な場合、フレームワークはドライバーの EvtProgramDma イベント コールバック関数を呼び出します。 コールバック関数は、転送を開始するためにハードウェアをプログラムする必要があります。

ドライバーは、 WdfDmaTransactionDmaCompletedXxx が TRUE を返すまで、トランザクションに関連付けられているデータ バッファーを操作することはできません。

単一パケット転送の場合、 SgList パラメーターが指す散布/収集リストに 1 つの要素が含まれます。

このコールバック関数の詳細については、「 DMA ハードウェアのプログラミング」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdfdmatransaction.h (Wdf.h を含む)
IRQL DISPATCH_LEVEL

こちらもご覧ください

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest