Partager via


WdfDmaTransactionGetCurrentDmaTransferLength, fonction (wdfdmatransaction.h)

[S’applique uniquement à KMDF]

La méthode WdfDmaTransactionGetCurrentDmaTransferLength retourne la taille du transfert DMA actuel.

Syntaxe

size_t WdfDmaTransactionGetCurrentDmaTransferLength(
  [in] WDFDMATRANSACTION DmaTransaction
);

Paramètres

[in] DmaTransaction

Handle vers un objet de transaction DMA que le pilote a obtenu à partir d’un appel précédent à WdfDmaTransactionCreate.

Valeur de retour

WdfDmaTransactionGetCurrentDmaTransferLength retourne la longueur du transfert DMA actuel.

Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.

Remarques

Si un pilote appelle WdfDmaTransactionGetCurrentDmaTransferLength, il doit le faire avant d’appeler l’une des routines d’achèvement de transfert, telles que WdfDmaTransactionDmaCompleted, pour terminer le transfert DMA actuel. En règle générale, les pilotes appellent WdfDmaTransactionGetCurrentDmaTransferLength à partir d’un EvtInterruptDpc fonction de rappel d’événement.

En règle générale, un pilote appelle WdfDmaTransactionGetCurrentDmaTransferLength pour les appareils qui signalent des longueurs de transfert DMA résiduelles (autrement dit, nombre d’octets de données qui n’ont pas été transférées). En soustrayant la longueur de transfert résiduelle de la valeur qui WdfDmaTransactionGetCurrentDmaTransferLength retournée, le pilote peut déterminer la longueur de transfert réelle. Le pilote appelle ensuite WdfDmaTransactionDmaCompletedWithLength pour indiquer au framework le nombre d’octets que l’appareil a réellement transférés.

Pour plus d’informations sur les transferts DMA complets, consultez Fin d’un transfert DMA.

Exemples

Pour obtenir un exemple de code qui utilise WdfDmaTransactionGetCurrentDmaTransferLength, consultez WdfDmaTransactionDmaCompletedWithLength.

Spécifications

Besoin Valeur
plateforme cible Universel
version minimale de KMDF 1.0
En-tête wdfdmatransaction.h (include Wdf.h)
Bibliothèque Wdf01000.sys (voir Versioning de la bibliothèque Framework.)
IRQL <=DISPATCH_LEVEL
règles de conformité DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

EvtInterruptDpc

WdfDmaTransactionCreate

WdfDmaTransactionDmaCompleted

WdfDmaTransactionDmaCompletedWithLength