énumération WDF_DMA_ENABLER_CONFIG_FLAGS (wdfdmaenabler.h)
[S’applique à KMDF uniquement]
Le type d’énumération WDF_DMA_ENABLER_CONFIG_FLAGS définit les indicateurs utilisés dans la structure de WDF_DMA_ENABLER_CONFIG d’un pilote.
Syntax
typedef enum _WDF_DMA_ENABLER_CONFIG_FLAGS {
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION = 0x00000001,
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER = 0x00000002
} WDF_DMA_ENABLER_CONFIG_FLAGS;
Constantes
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION Valeur : 0x00000001 L’indicateur WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION s’applique uniquement aux profils DMA suivants :
Par défaut, lorsque WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION n’est pas défini et que le WDF_DMA_PROFILE est l’un de ceux de la liste précédente, WDF crée une liste de lookaside de listes de nuages de points/regroupements qui est utilisée par la transaction de cet adaptateur DMA . Les entrées de liste sont initialisées pour autoriser le maximum spécifié longueur de transfert. Lorsque la transaction est exécutée, WDF appelle la fonction d’entrée BuildScatterGatherList . Moteurs de progression vers l’avant ne doit pas définir cet indicateur et doit utiliser l’un des quatre profils indiqués précédemment. Lorsque WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION est défini et que le WDF_DMA_PROFILE est l’un de ceux de la liste précédente, WDF ne crée pas de liste de lookaside. Lorsque la transaction est exécutée, WDF appelle GetScatterGatherList. La définition de WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION peut réduire l’utilisation de la mémoire, en particulier lorsque la longueur de transfert maximale est élevée. Toutefois, la définition de cet indicateur peut entraîner l’échec de l’exécution des opérations DMA dans des conditions de mémoire insuffisante. Pour garantir la progression vers l’avant lorsque WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION est défini, un pilote peut utiliser un enabler DMA distinct ou des transferts de rebond via une mémoire tampon commune. |
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER Valeur : 0x00000002 L’indicateur WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER est disponible à partir de la version 1.19 de KMDF. Cet indicateur nécessite également DMA version 3. Pour sélectionner DMA version 3, définissez le membre WdmDmaVersionOverride de WDF_DMA_ENABLER_CONFIG sur 3. Cet indicateur s’applique à tous les profils DMA. Lorsqu’il est défini, WDF ne fragmente pas les WDFDMATRANSACTION créés avec cet enabler en plusieurs transferts DMA. Si cela n’est pas possible, les tentatives d’initialisation ou d’exécution de la transaction échouent. Cette option est destinée aux appareils qui doivent recevoir toutes les données dans une seule opération DMA. Les pilotes ont également la possibilité de le spécifier au niveau de chaque transaction avec WdfDmaTransactionSetSingleTransferRequirement. Pour plus d’informations, consultez Using Single Transfer DMA. |
Remarques
Vous pouvez spécifier un OR au niveau du bit valide des valeurs de cette page pour le membre Indicateurs de la structure WDF_DMA_ENABLER_CONFIG .
Configuration requise
Condition requise | Valeur |
---|---|
Version KMDF minimale | 1.11 |
En-tête | wdfdmaenabler.h (inclure Wdf.h) |