Partager via


WdfDmaEnablerConfigureSystemProfile, fonction (wdfdmaenabler.h)

[S’applique à KMDF uniquement]

La méthode WdfDmaEnablerConfigureSystemProfile configure les paramètres spécifiques au matériel pour un enabler DMA en mode système et termine l’initialisation des ressources.

Syntaxe

NTSTATUS WdfDmaEnablerConfigureSystemProfile(
  [in] WDFDMAENABLER                  DmaEnabler,
  [in] PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig,
  [in] WDF_DMA_DIRECTION              ConfigDirection
);

Paramètres

[in] DmaEnabler

Handle pour un objet d’activation DMA.

[in] ProfileConfig

Pointeur vers une structure WDF_DMA_SYSTEM_PROFILE_CONFIG . Les pilotes doivent initialiser cette structure en appelant WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT.

[in] ConfigDirection

Valeur de type WDF_DMA_DIRECTION qui spécifie la direction de l’opération de transfert DMA. Si la valeur WDF_DMA_PROFILE de cet enabler n’est pas WdfDmaProfileSystemDuplex, l’infrastructure ignore ce paramètre.

Valeur retournée

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

Code de retour Description
STATUS_NOT_SUPPORTED
Le pilote a demandé une configuration DMA qui n’est pas prise en charge sur le système d’exploitation actuel.
STATUS_INVALID_PARAMETER
Le pilote a fourni null dans le paramètre ProfileConfig .
STATUS_INFO_LENGTH_MISMATCH
Le membre Size de la structure pointée par le paramètre ProfileConfig n’est pas égal à la taille de la structure WDF_DMA_SYSTEM_PROFILE_CONFIG .
STATUS_INVALID_PARAMETER
Le membre DmaDescriptor de la structure pointée par le paramètre ProfileConfig est NULL ou le paramètre ConfigDirection contient une valeur non valide.

Remarques

Avant d’appeler WdfDmaEnablerConfigureSystemProfile, le pilote doit appeler WdfDmaEnablerCreate pour créer l’objet enabler.

Un pilote appelle généralement WdfDmaEnablerConfigureSystemProfile à partir de sa fonction de rappel EvtDevicePrepareHardware .

Si votre pilote a spécifié un profil duplex lorsqu’il a appelé WdfDmaEnablerCreate, la valeur du paramètre ConfigDirection de la méthode WdfDmaEnablerConfigureSystemProfile doit être WdfDmaDirectionReadFromDevice pour obtenir la structure DMA_ADAPTER pour les opérations de lecture et WdfDmaDirectionWriteToDevice pour obtenir la structure DMA_ADAPTER pour les opérations d’écriture.

Si l’enabler DMA est un enabler duplex, le pilote doit initialiser une direction particulière avant de pouvoir l’utiliser.

Si votre pilote n’a pas spécifié de profil duplex, il peut spécifier WdfDmaDirectionReadFromDevice ou WdfDmaDirectionWriteToDevice.

Exemples

L’exemple de code suivant provient de la fonction de rappel EvtDevicePrepareHardware d’un pilote. Cet exemple initialise une structure WDF_DMA_SYSTEM_PROFILE_CONFIG et appelle WdfDmaEnablerConfigureSystemProfile.


WDF_DMA_SYSTEM_PROFILE_CONFIG systemDmaConfig;  
PHYSICAL_ADDRESS pa;  
 
pa.QuadPart = 0;  
  
WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT(&systemDmaConfig,   
                                   pa,  
                                   Width8Bits,  
                                   partial);  
  
systemDmaConfig.DemandMode = true;  
 
ntStatus = WdfDmaEnablerConfigureSystemProfile(fdoExtension->DmaEnabler,   
                                               &systemDmaConfig,   
                                               WdfDmaDirectionReadFromDevice);  

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8
Plateforme cible Universal
Version KMDF minimale 1.11
En-tête wdfdmaenabler.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (consultez Gestion des versions de la bibliothèque d’infrastructure).)
IRQL PASSIVE_LEVEL
Règles de conformité DDI DriverCreate(kmdf)

Voir aussi

WDF_DMA_ENABLER_CONFIG

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerCreate