énumération WDF_DMA_ENABLER_CONFIG_FLAGS (wdfdmaenabler.h)
[S’applique uniquement à KMDF]
Le type d’énumération WDF_DMA_ENABLER_CONFIG_FLAGS définit des indicateurs utilisés dans la structure WDF_DMA_ENABLER_CONFIG d’un pilote.
Syntaxe
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 des éléments de la liste précédente, WDF crée une liste de points/regroupements de listes qui sont utilisées par la transaction de cet adaptateur DMA Objets. 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. Pilotes 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 l'WDF_DMA_PROFILE est l’une de celles de la liste précédente, WDF ne crée pas de liste de choix. Lorsque la transaction est exécutée, WDF appelle GetScatterGatherList. La définition de WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION peut entraîner une réduction de l’utilisation de la mémoire, en particulier lorsque la longueur maximale du transfert est importante. Toutefois, la définition de cet indicateur peut entraîner l’échec des opérations DMA dans des conditions de mémoire insuffisantes. Pour garantir la progression vers l’avant lorsque WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION est définie, un pilote peut utiliser un enabler DMA distinct ou rebondir par le biais d’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 la version 3 de DMA. 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 aucun WDFDMATRANSACTION créé avec cet enabler dans plusieurs transferts DMA. Si ce 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 spécifier cela au niveau par transaction avec WdfDmaTransactionSetSingleTransferRequirement. Pour plus d’informations, consultez Using Single Transfer DMA. |
Remarques
Vous pouvez spécifier une or au niveau du bit valide des valeurs de cette page pour les indicateurs de membre de la structure WDF_DMA_ENABLER_CONFIG.
Spécifications
Besoin | Valeur |
---|---|
version minimale de KMDF | 1.11 |
En-tête | wdfdmaenabler.h (include Wdf.h) |