Partager via


WdfDmaTransactionCreate, fonction (wdfdmatransaction.h)

[S’applique à KMDF uniquement]

La méthode WdfDmaTransactionCreate crée une transaction DMA.

Syntaxe

NTSTATUS WdfDmaTransactionCreate(
  [in]           WDFDMAENABLER          DmaEnabler,
  [in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
  [out]          WDFDMATRANSACTION      *DmaTransaction
);

Paramètres

[in] DmaEnabler

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

[in, optional] Attributes

Pointeur vers une structure de WDF_OBJECT_ATTRIBUTES qui spécifie des attributs d’objet pour le nouvel objet de transaction DMA. (Le membre ParentObject de la structure doit être NULL.) Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.

[out] DmaTransaction

Handle pour un objet de transaction DMA.

Valeur retournée

WdfDmaTransactionCreate retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :

Code de retour Description
STATUS_INVALID_PARAMETER
Un paramètre non valide a été détecté.
STATUS_INSUFFICIENT_RESOURCES
La mémoire était insuffisante pour créer un objet de transaction DMA.
 

Pour obtenir la liste des autres valeurs de retour que la méthode WdfDmaTransactionCreate peut retourner, consultez Erreurs de création d’objets framework.

Cette méthode peut également retourner d’autres valeurs NTSTATUS.

Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.

Remarques

Une fois que votre pilote a appelé WdfDmaTransactionCreate, il doit appeler WdfDmaTransactionInitialize ou WdfDmaTransactionInitializeUsingRequest avant d’appeler WdfDmaTransactionExecute.

L’objet d’activation DMA spécifié devient le parent du nouvel objet de transaction DMA. Le pilote ne peut pas modifier ce parent, et le membre ParentObject ou la structure WDF_OBJECT_ATTRIBUTES doit avoir la valeur NULL.

Pour plus d’informations sur les transactions DMA, consultez Création et initialisation d’une transaction DMA.

Exemples

Pour obtenir un exemple de code qui utilise WdfDmaTransactionCreate, consultez WdfDmaTransactionExecute.

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 des versions de la bibliothèque d’infrastructure).)
IRQL <=DISPATCH_LEVEL
Règles de conformité DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

WDF_OBJECT_ATTRIBUTES

WdfDmaEnablerCreate

WdfDmaTransactionExecute

WdfDmaTransactionInitialize

WdfDmaTransactionInitializeUsingRequest