次の方法で共有


WdfDmaTransactionSetTransferCompleteCallback 関数 (wdfdmatransaction.h)

[KMDF にのみ適用]

WdfDmaTransactionSetTransferCompleteCallback メソッドは、システム モード DMA トランザクションの転送完了イベント コールバック関数を登録します。

構文

void WdfDmaTransactionSetTransferCompleteCallback(
  [in]           WDFDMATRANSACTION                             DmaTransaction,
  [in, optional] PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine,
  [in, optional] PVOID                                         DmaCompletionContext
);

パラメーター

[in] DmaTransaction

転送完了コールバックを設定またはクリアする、初期化された DMA トランザクション オブジェクトへのハンドル。

[in, optional] DmaCompletionRoutine

ドライバーの EvtDmaTransactionDmaTransferComplete イベント コールバック関数へのポインター。以前に設定されたコールバック関数をクリアする場合は NULL。

[in, optional] DmaCompletionContext

ドライバーの EvtDmaTransactionDmaTransferComplete イベント コールバック関数に提供される、ドライバー指定のコンテキストを含むバッファーへのポインター。NULL。

戻り値

なし

注釈

ドライバーは、システム DMA コント ローラーが転送を完了した後、フレームワークが呼び出す完了ルーチンを設定するには、このメソッドを呼び出します。 フレームワークは、トランザクション内の転送ごとにドライバーの EvtDmaTransactionDmaTransferComplete コールバックを 1 回呼び出します。

通常、I/O キュー イベント コールバック関数内から、ドライバーは次の手順をこの順序で実行します。

  1. WdfDmaTransactionInitializeUsingRequest WdfDmaTransactionInitialize、または WdfDmaTransactionInitializeUsingOffset を呼び出してトランザクション オブジェクトを初期化します。
  2. トランザクション オブジェクト WdfDmaTransactionSetTransferCompleteCallback を呼び出します。
  3. WdfDmaTransactionExecute 呼び出します。
ドライバーが EvtDmaTransactionDmaTransferComplete イベント コールバック関数を指定した場合は、WdfDmaTransactionSetTransferCompleteCallback を呼び出し、その後、ドライバーは WdfDmaTransactionReleaseを呼び出すと、コールバックはクリアされます。

WdfDmaTransactionSetTransferCompleteCallback は、システム モードの DMA プロファイルを指定する DMA イネーブラーでのみ使用できます。

ドライバーが Windows 8 より前のオペレーティング システムでこのメソッドを呼び出す場合は、フレームワークの検証ツールを エラーが報告されます。

必要条件

要件 価値
サポートされる最小クライアント Windows 8
ターゲット プラットフォーム 普遍
最小 KMDF バージョン 1.11
ヘッダー wdfdmatransaction.h (Wdf.h を含む)
図書館 Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf)

こちらもご覧ください

EvtDmaTransactionDmaTransferComplete

WdfDmaTransactionRelease