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 |
---|---|
|
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 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) |