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 per un oggetto transazione DMA ottenuto dal driver da una chiamata precedente a WdfDmaTransactionCreate.

Valore restituito

WdfDmaTransactionGetCurrentDmaTransferLength restituisce la lunghezza del trasferimento DMA corrente.

Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.

Osservazioni:

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 un EvtInterruptDpc funzione di callback degli eventi.

In genere, un driver chiama WdfDmaTransactionGetCurrentDmaTransferLength per i dispositivi che segnalano lunghezze di trasferimento DMA residui( ovvero conteggi di byte di dati non trasferiti). Sottraendo la lunghezza del trasferimento residuo dal valore restituito WdfDmaTransactionGetCurrentDmaTransferLength restituito, il driver può determinare la lunghezza effettiva del trasferimento. Il driver chiama quindi WdfDmaTransactionDmaCompletedWithLength per informare il framework del numero di byte effettivamente trasferiti dal dispositivo.

Per altre informazioni sui trasferimenti DMA completi, vedere Completamento di un trasferimento DMA.

Esempi

Per un esempio di codice che usa WdfDmaTransactionGetCurrentDmaTransferLength, vedere WdfDmaTransactionDmaCompletedWithLength.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
versione minima di KMDF 1.0
intestazione wdfdmatransaction.h (include Wdf.h)
Biblioteca Wdf01000.sys (vedere Controllo delle versioni della libreria framework).
IRQL <=DISPATCH_LEVEL
regole di conformità DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Vedere anche

EvtInterruptDpc

WdfDmaTransactionCreare

WdfDmaTransactionDmaCompleted

WdfDmaTransactionDmaCompletedWithLength