Partager via


Fonction WdfDmaTransactionSetSingleTransferRequirement (wdfdmatransaction.h)

[S’applique uniquement à KMDF]

La méthode WdfDmaTransactionSetSingleTransferRequirement spécifie qu’une transaction DMA doit se terminer en un seul transfert.

Syntaxe

void WdfDmaTransactionSetSingleTransferRequirement(
  [in] WDFDMATRANSACTION DmaTransaction,
  [in] BOOLEAN           RequireSingleTransfer
);

Paramètres

[in] DmaTransaction

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

[in] RequireSingleTransfer

Valeur booléenne qui, si TRUE, spécifie que la transaction DMA nécessite un seul transfert.

Valeur de retour

None

Remarques

Cette méthode demande un transfert unique pour une seule transaction uniquement. Lorsque l’objet de transaction est recyclé avec WdfDmaTransactionRelease et réinitialisé, ce paramètre est réinitialisé, comme d’autres propriétés au niveau de la transaction, telles que l’exécution immédiate et la longueur maximale de transfert.

Pour demander un transfert unique pour toutes les transactions DMA créées avec un enabler DMA donné, spécifiez WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER dans WDF_DMA_ENABLER_CONFIG_FLAGS lors de l’appel de WdfDmaEnablerCreate. Cela équivaut à appeler WdfDmaTransactionSetSingleTransferRequirement pour chaque objet de transaction créé avec l’activation DMA.

Le pilote appelle WdfDmaTransactionSetSingleTransferRequirement après avoir créé ou recyclé l’objet de transaction, mais avant de l’initialiser ou de l’exécuter. Pour plus d’informations, consultez Utilisation d’un DMA à transfert unique.

WdfDmaTransactionSetSingleTransferRequirement nécessite DMA version 3. Pour sélectionner DMA version 3, définissez le membre WdmDmaVersionOverride de WDF_DMA_ENABLER_CONFIG sur 3.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1,19
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

Voir aussi

WdfDmaTransactionCreate

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest