共用方式為


WdfDmaTransactionCreate 函式 (wdfdmatransaction.h)

[僅適用於 KMDF]

WdfDmaTransactionCreate 方法會建立 DMA 交易。

語法

NTSTATUS WdfDmaTransactionCreate(
  [in]           WDFDMAENABLER          DmaEnabler,
  [in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
  [out]          WDFDMATRANSACTION      *DmaTransaction
);

參數

[in] DmaEnabler

驅動程式從先前呼叫 WdfDmaEnablerCreate 取得的 DMA 啟用器物件的句柄。

[in, optional] Attributes

WDF_OBJECT_ATTRIBUTES 結構的指標,指定新 DMA 交易對象屬性。 (結構的 ParentObject 成員必須是 NULL。) 此參數是選擇性的,而且可以WDF_NO_OBJECT_ATTRIBUTES。

[out] DmaTransaction

DMA 交易物件的句柄。

傳回值

如果作業成功,WdfDmaTransactionCreate 會傳回STATUS_SUCCESS。 否則,這個方法可能會傳回下列其中一個值:

傳回碼 Description
STATUS_INVALID_PARAMETER
偵測到無效的參數。
STATUS_INSUFFICIENT_RESOURCES
記憶體不足,無法建立新的 DMA 交易物件。
 

如需 WdfDmaTransactionCreate 方法可能會傳回的其他傳回值清單,請參閱 Framework 物件建立錯誤

這個方法也可能傳回其他 NTSTATUS值

如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。

備註

在驅動程式呼叫 WdfDmaTransactionCreate 之後,它必須先呼叫 WdfDmaTransactionInitializeWdfDmaTransactionInitializeUsingRequest ,再呼叫 WdfDmaTransactionExecute

指定的 DMA 啟用子物件會成為新 DMA 交易物件的父代。 驅動程式無法變更此父代, 而且 ParentObject 成員或 WDF_OBJECT_ATTRIBUTES 結構必須是 NULL

如需 DMA 交易的詳細資訊,請參閱 建立和初始化 DMA 交易

範例

如需使用 WdfDmaTransactionCreate 的程式代碼範例,請參閱 WdfDmaTransactionExecute

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.0
標頭 wdfdmatransaction.h (包含 Wdf.h)
程式庫 Wdf01000.sys (請參閱 Framework Library Versioning.)
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)

另請參閱

WDF_OBJECT_ATTRIBUTES

WdfDmaEnablerCreate

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest