Partager via


WdfDmaEnablerConfigureSystemProfile, fonction (wdfdmaenabler.h)

[S’applique uniquement à KMDF]

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 vers un objet d’enabler 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 WDF_DMA_DIRECTION-typée 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 de retour

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 DmaDescriptor membre de la structure pointée par le paramètre ProfileConfig a la valeur 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, le paramètre WdfDmaEnablerConfigureSystemProfile méthode ConfigDirection'' la valeur de s 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, le pilote peut spécifier WdfDmaDirectionReadFromDevice ou WdfDmaDirectionWriteToDevice.

Exemples

L’exemple de code suivant provient du EvtDevicePrepareHardware d’un pilote fonction de rappel. 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);  

Spécifications

Besoin Valeur
client minimum pris en charge Windows 8
plateforme cible Universel
version minimale de KMDF 1.11
En-tête wdfdmaenabler.h (include Wdf.h)
Bibliothèque Wdf01000.sys (voir Versioning de la bibliothèque Framework.)
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