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 pour un objet de transaction DMA que le pilote a obtenu à partir d’un appel précédent à WdfDmaTransactionCreate.

Valeur retournée

WdfDmaTransactionGetCurrentDmaTransferLength retourne la longueur du transfert DMA actuel.

Un bogue case activée 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 du transfert, telles que WdfDmaTransactionDmaCompleted, pour terminer le transfert DMA actuel. En règle générale, les pilotes appellent WdfDmaTransactionGetCurrentDmaTransferLength à partir d’une fonction de rappel d’événement EvtInterruptDpc .

En règle générale, un pilote appelle WdfDmaTransactionGetCurrentDmaTransferLength pour les appareils qui signalent des longueurs de transfert DMA résiduelles (autrement dit, le 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 retournée par WdfDmaTransactionGetCurrentDmaTransferLength , 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 effectivement transférés.

Pour plus d’informations sur les transferts DMA complets, consultez Achèvement d’un transfert DMA.

Exemples

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

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
En-tête wdfdmatransaction.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (consultez Gestion de version de la bibliothèque d’infrastructure.)
IRQL <=DISPATCH_LEVEL
Règles de conformité DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

EvtInterruptDpc

WdfDmaTransactionCreate

WdfDmaTransactionDmaCompleted

WdfDmaTransactionDmaCompletedWithLength