structure WDF_DMA_ENABLER_CONFIG (wdfdmaenabler.h)
[S’applique uniquement à KMDF]
La structure WDF_DMA_ENABLER_CONFIG fournit des caractéristiques pour un objet d’activation DMA.
Syntaxe
typedef struct _WDF_DMA_ENABLER_CONFIG {
ULONG Size;
WDF_DMA_PROFILE Profile;
size_t MaximumLength;
PFN_WDF_DMA_ENABLER_FILL EvtDmaEnablerFill;
PFN_WDF_DMA_ENABLER_FLUSH EvtDmaEnablerFlush;
PFN_WDF_DMA_ENABLER_DISABLE EvtDmaEnablerDisable;
PFN_WDF_DMA_ENABLER_ENABLE EvtDmaEnablerEnable;
PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START EvtDmaEnablerSelfManagedIoStart;
PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP EvtDmaEnablerSelfManagedIoStop;
ULONG AddressWidthOverride;
ULONG WdmDmaVersionOverride;
ULONG Flags;
} WDF_DMA_ENABLER_CONFIG, *PWDF_DMA_ENABLER_CONFIG;
Membres
Size
Taille, en octets, de cette structure.
Profile
Valeur de type WDF_DMA_PROFILE, qui identifie le type d’opération DMA master bus qui sera associé à l’objet d’activation DMA.
MaximumLength
Taille maximale par défaut, en octets, que l’appareil peut gérer dans un seul transfert DMA. (Les pilotes peuvent remplacer cette valeur par défaut pour les transactions DMA individuelles en appelant WdfDmaTransactionSetMaximumLength.) Si votre pilote doit s’exécuter sur des versions de systèmes d’exploitation Microsoft Windows prenant en charge un maximum de 16 registres de carte, MaximumLength doit être inférieur à 65 536.
EvtDmaEnablerFill
Pointeur vers la fonction de rappel d’événement EvtDmaEnablerFill du pilote, ou NULL.
EvtDmaEnablerFlush
Pointeur vers la fonction de rappel d’événement EvtDmaEnablerFlush du pilote, ou NULL.
EvtDmaEnablerDisable
Pointeur vers la fonction de rappel d’événement EvtDmaEnableDisable du pilote, ou NULL.
EvtDmaEnablerEnable
Pointeur vers la fonction de rappel d’événement EvtDmaEnableEnable du pilote, ou NULL.
EvtDmaEnablerSelfManagedIoStart
Pointeur vers la fonction de rappel d’événement EvtDmaEnablerSelfManagedIoStart du pilote, ou NULL.
EvtDmaEnablerSelfManagedIoStop
Pointeur vers la fonction de rappel d’événement EvtDmaEnablerSelfManagedIoStop du pilote, ou NULL.
AddressWidthOverride
Définissez sur zéro pour accepter la largeur d’adresse spécifiée dans Profil. Un pilote peut remplacer la largeur de l’adresse du profil en définissant ce membre sur une valeur comprise entre 24 et 63. Si votre pilote spécifie un profil DMA en mode système, AddressWidthOverride doit être égal à zéro. Si votre pilote spécifie un profil DMA 32 bits, AddressWidthOverride ne peut pas être supérieur à 32. Le membre AddressWidthOverride est disponible dans la version 1.11 et les versions ultérieures de KMDF. Pour plus d’informations, consultez Remarques.
WdmDmaVersionOverride
Définissez sur zéro pour accepter la version DMA par défaut. Pour demander DMA version 3, définissez sur 3. Le membre WdmDmaVersionOverride est disponible dans la version 1.11 et dans les versions ultérieures de KMDF. DMA version 3 est disponible à partir de Windows 8.
Flags
OR au niveau du bit d’une ou plusieurs valeurs de l’énumération WDF_DMA_ENABLER_CONFIG_FLAGS . Le membre Flags est disponible dans la version 1.11 et dans les versions ultérieures de KMDF.
Remarques
La structure WDF_DMA_ENABLER_CONFIG est utilisée comme paramètre d’entrée de la méthode WdfDmaEnablerCreate .
Les pilotes doivent appeler WDF_DMA_ENABLER_CONFIG_INIT pour initialiser la structure WDF_DMA_ENABLER_CONFIG .
Dans Windows 8 et versions ultérieures, lorsque le pilote fournit une valeur différente de zéro pour AddressWidthOverride, l’infrastructure demande DMA version 3 et transmet la valeur AddressWidthOverride à la hal.
Sur Windows 7 et Windows Vista, lorsque le pilote fournit une valeur différente de zéro pour AddressWidthOverride, l’infrastructure utilise la DMA 32 bits ou 24 bits. Par exemple, si le pilote spécifie un profil 64 bits et fournit un AddressWidthOverride de 32, l’infrastructure utilise la DMA 32 bits. Si le pilote spécifie un profil 32 bits et fournit un AddressWidthOverride de 24, l’infrastructure utilise DMA 24 bits.
Configuration requise
Condition requise | Valeur |
---|---|
Version KMDF minimale | 1.0 |
En-tête | wdfdmaenabler.h (inclure Wdf.h) |
Voir aussi
EvtDmaEnablerSelfManagedIoStart