Condividi tramite


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)

Vedi anche

EvtInterruptDpc

WdfDmaTransactionCreate

WdfDmaTransactionDmaCompleted

WdfDmaTransactionDmaCompletedWithLength