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

EvtDmaEnablerDisable

EvtDmaEnablerEnable

EvtDmaEnablerFill

EvtDmaEnablerFlush

EvtDmaEnablerSelfManagedIoStart

EvtDmaEnablerSelfManagedIoStop

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_PROFILE

WdfDmaEnablerCreate

WdfDmaTransactionSetMaximumLength