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 |