次の方法で共有


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

[KMDF にのみ適用]

ドライバーの EvtDmaTransactionConfigureDmaChannel イベント コールバック関数は、システム モード DMA イネーブラーの DMA アダプターを構成します。

構文

EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL EvtWdfDmaTransactionConfigureDmaChannel;

BOOLEAN EvtWdfDmaTransactionConfigureDmaChannel(
  [in]           WDFDMATRANSACTION DmaTransaction,
  [in]           WDFDEVICE Device,
  [in]           PVOID Context,
  [in, optional] PMDL Mdl,
  [in]           size_t Offset,
  [in]           size_t Length
)
{...}

パラメーター

[in] DmaTransaction

実行されているトランザクションを表す DMA トランザクション オブジェクトへのハンドル。

[in] Device

WdfDmaTransactionCreate を呼び出したときにドライバーが指定したフレームワーク デバイス オブジェクトへのハンドル。

[in] Context

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

[in, optional] Mdl

現在の転送に関連付けられているバッファーを記述する単一メモリ記述子リスト (MDL) または MDL チェーンへのポインター。最後の転送が完了し、アダプターが解放されている場合は NULL。

[in] Offset

現在の転送が開始される Mdl パラメーターで指定されたバッファーへのバイト オフセット。

[in] Length

現在の転送で転送されるバイト数。

戻り値

EvtDmaTransactionConfigureDmaChannel コールバック関数は、DMA チャネルを正常に構成した場合に TRUE を返します。 このコールバック関数が FALSE を返す場合、フレームワークはトランザクションを停止し、 EvtProgramDma を呼び出しません。

注釈

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

フレームワークは、アダプター チャネルを割り当てた後、転送をマッピングして EvtProgramDma を呼び出す前に、トランザクション内のシステム プロファイル DMA 転送ごとに EvtDmaTransactionConfigureDmaChannel を 1 回呼び出します。

ドライバーは、 EvtDmaTransactionConfigureDmaChannel コールバックを使用して、転送をマッピングする前に DMA アダプターのカスタム プログラミングを設定できます。

チャネルの構成中にドライバーでエラーが発生した場合は、 WdfDmaTransactionDmaCompletedFinal を呼び出して DMA 転送を停止し、必要に応じて要求を完了できます。 ドライバーは、このコールバック関数から FALSE を返す必要があります。

要件

要件
サポートされている最小のクライアント Windows 8
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.11
Header wdfdmatransaction.h (Wdf.h を含む)
IRQL DISPATCH_LEVEL

こちらもご覧ください

WdfDmaTransactionDmaCompletedFinal

WdfDmaTransactionSetChannelConfigurationCallback