次の方法で共有


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 イベント コールバック関数を呼び出します。 コールバック関数は、転送を開始するハードウェアをプログラムする必要があります。

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

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

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

必要条件

要件 価値
ターゲット プラットフォーム 普遍
最小 KMDF バージョン 1.0
ヘッダー wdfdmatransaction.h (Wdf.h を含む)
IRQL DISPATCH_LEVEL

こちらもご覧ください

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest