WDF_DMA_SYSTEM_PROFILE_CONFIG structure (wdfdmaenabler.h)
[S’applique à KMDF uniquement]
La structure WDF_DMA_SYSTEM_PROFILE_CONFIG décrit les paramètres spécifiques au matériel liés à un enabler DMA en mode système.
Syntaxe
typedef struct _WDF_DMA_SYSTEM_PROFILE_CONFIG {
ULONG Size;
BOOLEAN DemandMode;
BOOLEAN LoopedTransfer;
DMA_WIDTH DmaWidth;
PHYSICAL_ADDRESS DeviceAddress;
PCM_PARTIAL_RESOURCE_DESCRIPTOR DmaDescriptor;
} WDF_DMA_SYSTEM_PROFILE_CONFIG, *PWDF_DMA_SYSTEM_PROFILE_CONFIG;
Membres
Size
Taille de cette structure en octets.
DemandMode
Spécifie que le transfert est contrôlé par l’assistant DMA de l’appareil
ligne de requête spécifiée dans le membre DmaDescriptor de cette structure. Pour plus d’informations, consultez Remarques.
LoopedTransfer
Spécifie que l’adaptateur DMA doit tourner autour du transfert spécifié si la longueur est supérieure à la taille de la mémoire tampon.
DmaWidth
Largeur du registre spécifiée par DeviceAddress. Les valeurs possibles sont Width8Bits, Width16Bits, Width32Bits et Width64Bits.
DeviceAddress
Adresse traduite vers ou à partir de laquelle le contrôleur DMA transfère. Le pilote peut spécifier un décalage de cette adresse de base sur chaque transaction en appelant WdfDmaTransactionSetDeviceAddressOffset.
DmaDescriptor
Descripteur de ressources traduit pour le canal DMA affecté à l’appareil pendant EvtDevicePrepareHardware. Cela fournit la ligne de requête DMA pour l’adaptateur.
Remarques
Le pilote fournit cette structure à WdfDmaEnablerConfigureSystemProfile après avoir créé un enabler DMA de profil système.
En règle générale, les pilotes définissent DemandMode sur TRUE. La fonction de rappel EvtProgramDma du pilote programme ensuite l’appareil pour affirmer sa ligne de requête DMA et lancer le transfert. Dans ce cas, le transfert peut commencer alors qu’EvtProgramDma est toujours en cours d’exécution.
Le pilote doit s’assurer que la ligne de requête DMA de l’appareil n’est pas déclarée avant que la fonction de rappel EvtProgramDma du pilote commence l’exécution. Sinon, il est possible que le transfert DMA commence avant que l’infrastructure appelle EvtProgramDma.
Si DemandMode est défini sur FALSE, le transfert DMA peut commencer avant que l’infrastructure appelle la fonction EvtProgramDma du pilote.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 |
Version KMDF minimale | 1.11 |
En-tête | wdfdmaenabler.h (inclure Wdf.h) |