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 |
---|---|
|
Le pilote a demandé une configuration DMA qui n’est pas prise en charge sur le système d’exploitation actuel. |
|
Le pilote a fourni null dans le paramètre ProfileConfig . |
|
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 . |
|
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) |