共用方式為


WdfDmaTransactionGetCurrentDmaTransferLength 函式 (wdfdmatransaction.h)

[僅適用於 KMDF]

WdfDmaTransactionGetCurrentDmaTransferLength 方法會傳回目前 DMA 傳輸的大小。

語法

size_t WdfDmaTransactionGetCurrentDmaTransferLength(
  [in] WDFDMATRANSACTION DmaTransaction
);

參數

[in] DmaTransaction

驅動程式從先前呼叫 WdfDmaTransactionCreate取得的 DMA 交易物件的句柄。

返回值

WdfDmaTransactionGetCurrentDmaTransferLength 會傳回目前 DMA 傳輸的長度。

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

備註

如果驅動程式呼叫 WdfDmaTransactionGetCurrentDmaTransferLength,則必須先執行此動作,才能呼叫其中一個傳輸完成例程,例如 WdfDmaTransactionDmaCompleted,才能完成目前的 DMA 傳輸。 一般而言,驅動程式會從 EvtInterruptDpc 事件回呼函式內呼叫 WdfDmaTransactionGetCurrentDmaTransferLength

一般而言,驅動程式會針對回報剩餘 DMA 傳輸長度的裝置呼叫 WdfDmaTransactionGetCurrentDmaTransferLength(也就是未傳輸的數據位元組計數)。 藉由從傳回 WdfDmaTransactionGetCurrentDmaTransferLength 傳回的值減去剩餘傳輸長度,驅動程式就可以判斷實際的傳輸長度。 驅動程式接著會呼叫 WdfDmaTransactionDmaCompletedWithLength,讓架構知道裝置實際傳輸的位元組數目。

如需完整 DMA 傳輸的詳細資訊,請參閱 完成 DMA 傳輸

範例

如需使用 WdfDmaTransactionGetCurrentDmaTransferLength的程式代碼範例,請參閱 WdfDmaTransactionDmaCompletedWithLength

需求

要求 價值
目標平臺 普遍
最低 KMDF 版本 1.0
標題 wdfdmatransaction.h (包括 Wdf.h)
程式庫 Wdf01000.sys (請參閱架構連結庫版本控制。)
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf)

另請參閱

EvtInterruptDpc

WdfDmaTransactionCreate

WdfDmaTransactionDmaCompleted

WdfDmaTransactionDmaCompletedWithLength