次の方法で共有


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

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

[in] Offset

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

[in] Length

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

戻り値

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

注釈

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

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

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows 8
ターゲット プラットフォーム 普遍
最小 KMDF バージョン 1.11
ヘッダー wdfdmatransaction.h (Wdf.h を含む)
IRQL DISPATCH_LEVEL

こちらもご覧ください

WdfDmaTransactionDmaCompletedFinal

WdfDmaTransactionSetChannelConfigurationCallback