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) |