共用方式為


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

規格需求

需求
目標平台 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)

另請參閱

EvtInterruptDpc

WdfDmaTransactionCreate

WdfDmaTransactionDmaCompleted

WdfDmaTransactionDmaCompletedWithLength