Funzione WdfDmaTransactionGetCurrentDmaTransferLength (wdfdmatransaction.h)
[Si applica solo a KMDF]
Il metodo WdfDmaTransactionGetCurrentDmaTransferLength restituisce le dimensioni del trasferimento DMA corrente.
Sintassi
size_t WdfDmaTransactionGetCurrentDmaTransferLength(
[in] WDFDMATRANSACTION DmaTransaction
);
Parametri
[in] DmaTransaction
Handle a un oggetto transazione DMA ottenuto dal driver da una chiamata precedente a WdfDmaTransactionCreate.
Valore restituito
WdfDmaTransactionGetCurrentDmaTransferLength restituisce la lunghezza del trasferimento DMA corrente.
Un controllo di bug si verifica se il driver fornisce un handle di oggetti non valido.
Commenti
Se un driver chiama WdfDmaTransactionGetCurrentDmaTransferLength, deve farlo prima di chiamare una delle routine di completamento del trasferimento, ad esempio WdfDmaTransactionDmaCompleted, per completare il trasferimento DMA corrente. In genere, i driver chiamano WdfDmaTransactionGetCurrentDmaTransferLength dall'interno di una funzione di callback degli eventi EvtInterruptDpc .
In genere, un driver chiama WdfDmaTransactionGetCurrentDmaTransferLength per i dispositivi che segnalano le lunghezze di trasferimento DMA rimanenti, ovvero i conteggi dei byte dei dati non trasferiti. Sottraendo la lunghezza del trasferimento residuo dal valore restituito da WdfDmaTransactionGetCurrentDmaTransferLength , il driver può determinare la lunghezza effettiva del trasferimento. Il driver chiama quindi WdfDmaTransactionDmaCompletedWithLength per informare il numero di byte effettivamente trasferiti dal dispositivo.
Per altre informazioni sui trasferimenti DMA completi, vedere Completamento di un trasferimento DMA.
Esempio
Per un esempio di codice che usa WdfDmaTransactionGetCurrentDmaTransferLength, vedere WdfDmaTransactionDmaCompletedWithLength.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Intestazione | wdfdmatransaction.h (include Wdf.h) |
Libreria | Wdf01000.sys (vedere Framework Library Versioning). |
IRQL | <=DISPATCH_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |