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) |