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