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 回呼一次。

一般而言,驅動程式會依照下列順序,從 I/O 佇列事件回呼函式內執行下列步驟:

  1. 呼叫 WdfDmaTransactionInitializeUsingRequestWdfDmaTransactionInitializeWdfDmaTransactionInitializeUsingOffset 來初始化交易物件。
  2. 在交易物件上呼叫 WdfDmaTransactionSetTransferCompleteCallback
  3. 呼叫 WdfDmaTransactionExecute
如果驅動程式已藉由呼叫 WdfDmaTransferCompleteCallback 和驅動程式後續呼叫 WdfDmaTransactionRelease 來指定 EvtDmaTransactionDmaTransactionDmaComplete 事件回呼函式,則會清除回呼。

WdfDmaTransactionSetTransferCompleteCallback 只能與指定系統模式 DMA 配置檔的 DMA 啟用器搭配使用。

如果您的驅動程式在 Windows 8 之前的作業系統上呼叫此方法,架構的驗證器會回報錯誤。

規格需求

需求
最低支援的用戶端 Windows 8
目標平台 Universal
最小 KMDF 版本 1.11
標頭 wdfdmatransaction.h (包含 Wdf.h)
程式庫 Wdf01000.sys (請參閱 Framework Library Versioning.)
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 DriverCreate (kmdf)

另請參閱

EvtDmaTransactionDmaTransferComplete

WdfDmaTransactionRelease