Partager via


structure SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG (sercx.h)

La structure SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG contient des informations que la version 2 de l’extension d’infrastructure série (SerCx2) utilise pour configurer un nouvel objet de transmission DMA système.

Syntaxe

typedef struct _SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG {
  ULONG                                                 Size;
  size_t                                                MaximumTransferLength;
  size_t                                                MinimumTransactionLength;
  ULONG                                                 DmaAlignment;
  ULONG                                                 MaximumScatterGatherFragments;
  DMA_WIDTH                                             DmaWidth;
  PHYSICAL_ADDRESS                                      DeviceAddress;
  PCM_PARTIAL_RESOURCE_DESCRIPTOR                       DmaDescriptor;
  ULONG                                                 MinimumTransferUnitOverride;
  BOOLEAN                                               Exclusive;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_INITIALIZE_TRANSACTION EvtSerCx2SystemDmaTransmitInitializeTransaction;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CLEANUP_TRANSACTION    EvtSerCx2SystemDmaTransmitCleanupTransaction;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CONFIGURE_DMA_CHANNEL  EvtSerCx2SystemDmaTransmitConfigureDmaChannel;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_DRAIN_FIFO             EvtSerCx2SystemDmaTransmitDrainFifo;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_CANCEL_DRAIN_FIFO      EvtSerCx2SystemDmaTransmitCancelDrainFifo;
  PFN_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO             EvtSerCx2SystemDmaTransmitPurgeFifo;
} SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG, *PSERCX2_SYSTEM_DMA_TRANSMIT_CONFIG;

Membres

Size

Taille, en octets, de cette structure. La méthode SerCx2SystemDmaTransmitCreate utilise ce membre pour déterminer la version de la structure utilisée par l’appelant. La taille de cette structure peut changer dans les futures versions du fichier d’en-tête Sercx.h.

MaximumTransferLength

Taille maximale par défaut, en octets, que le contrôleur série peut gérer dans un seul transfert DMA système. Si la taille de la mémoire tampon dans la requête d’écriture (IRP_MJ_WRITE) est supérieure à cette taille maximale, SerCx2 utilise plusieurs transferts DMA pour gérer la requête et limite chaque transfert à la longueur maximale.

MinimumTransactionLength

Longueur minimale, en octets, d’une transaction de transmission DMA système. Si la longueur de la mémoire tampon dans une demande d’écriture est inférieure à cette longueur minimale, SerCx2 utilise des E/S programmés (PIO) pour la transaction.

DmaAlignment

Exigence d’alignement DMA. Spécifie comment l’adresse de départ d’un transfert dans une transaction de transmission DMA système doit être alignée en mémoire. Définissez ce membre sur la constante_ALIGNMENT XXX FILE_appropriée dans le fichier d’en-tête Wdm.h. Par exemple, FILE_WORD_ALIGNMENT indique que l’adresse DMA de départ doit être alignée sur une limite à deux octets en mémoire, FILE_LONG_ALIGNMENT indique que l’adresse doit être alignée sur une limite de quatre octets, et ainsi de suite. SerCx2 ne prend pas en charge FILE_BYTE_ALIGNMENT. L’unité de transfert minimale (MTU) de l’adaptateur DMA système doit être supérieure ou égale à l’alignement requis. Par exemple, si le MTU est de quatre octets, DmaAlignment doit être au moins FILE_LONG_ALIGNMENT.

MaximumScatterGatherFragments

Nombre maximal de fragments de mémoire tampon qui peuvent être spécifiés dans la liste de nuages de points/regroupements pour un transfert DMA dans une transaction de transmission DMA système.

DmaWidth

Largeur du registre de données à l’adresse spécifiée par DeviceAddress. Les valeurs possibles sont Width8Bits, Width16Bits, Width32Bitset Width64Bits.

DeviceAddress

Adresse de l’appareil traduit vers laquelle le contrôleur DMA transfère les données à transmettre. Pour plus d’informations, consultez la description du membre DeviceAddress dans WDF_DMA_SYSTEM_PROFILE_CONFIG.

DmaDescriptor

Pointeur vers la structure CM_PARTIAL_RESOURCE_DESCRIPTOR qui décrit la ressource DMA système à utiliser pour les transactions de transmission. Le pilote de contrôleur série obtient cette structure à partir de la liste de ressources brute qu’il reçoit dans le EvtDevicePrepareHardware rappel qui démarre le contrôleur série.

MinimumTransferUnitOverride

Valeur de remplacement à utiliser à la place de l’unité de transfert minimale par défaut. Le nombre d’octets spécifiés par un élément d’une liste de points/regroupements doit être un multiple entier de l’unité de transfert minimale. La valeur zéro indique que l’unité de transfert minimale par défaut doit être utilisée. Pour plus d’informations sur l’unité de transfert minimale par défaut, consultez DMA_ADAPTER_INFO_V1.

Exclusive

Indique s’il faut utiliser des transactions de transmission DMA système exclusivement pour gérer les requêtes d’écriture (IRP_MJ_WRITE). Défini sur TRUE pour indiquer que les demandes d’écriture doivent utiliser exclusivement des transactions de transmission DMA système. Défini sur FALSE pour indiquer que les demandes d’écriture peuvent utiliser une combinaison de transactions de transmission DMA système et de transactions de transmission d’authentification unique.

Définissez ce membre sur TRUE uniquement si l’unité de transfert minimale pour les transactions de transmission DMA système est d’un octet, la longueur minimale des transactions est d’un octet et que la mémoire tampon d’écriture de la transaction peut démarrer sur n’importe quelle limite d’octets en mémoire.

Si exclusif est TRUE, les membres MinimumTransferUnitOverride, Alignmentet MinimumTransactionLength membres doivent être zéro.

EvtSerCx2SystemDmaTransmitInitializeTransaction

Pointeur vers la fonction de rappel d’événement evtSerCx2SystemDmaTransmitInitializeTransaction implémentée par le pilote. Ce membre est facultatif et peut être défini sur NULL pour indiquer que le pilote n’implémente pas la fonction.

EvtSerCx2SystemDmaTransmitCleanupTransaction

Pointeur vers la fonction de rappel d’événements EvtSerCx2SystemDmaTransmitCleanupTransaction. Ce membre est facultatif et peut être défini sur NULL pour indiquer que le pilote n’implémente pas la fonction.

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

Pointeur vers la fonction de rappel d’événements EvtSerCx2SystemDmaTransmitConfigureDmaChannel. Ce membre est facultatif et peut être défini sur NULL pour indiquer que le pilote n’implémente pas la fonction.

EvtSerCx2SystemDmaTransmitDrainFifo

Pointeur vers la fonction de rappel d’événements evtSerCx2SystemDmaTransmitDrainFifo implémentée par le pilote. Ce membre est facultatif et peut être défini sur NULL pour indiquer que le pilote n’implémente pas la fonction. Toutefois, un pilote qui implémente cette fonction doit également implémenter Fonctions EvtSerCx2SystemDmaTransmitCancelDrainFifo et EvtSerCx2SystemDmaTransmitPurgeFifo.

EvtSerCx2SystemDmaTransmitCancelDrainFifo

Pointeur vers la fonction de rappel d’événement evtSerCx2SystemDmaTransmitCancelDrainFifo implémentée par le pilote. Ce membre est facultatif et peut être défini sur NULL pour indiquer que le pilote n’implémente pas la fonction. Toutefois, un pilote qui implémente cette fonction doit également implémenter EvtSerCx2SystemDmaTransmitDrainFifo et EvtSerCx2SystemDmaTransmitPurgeFifo fonctions.

EvtSerCx2SystemDmaTransmitPurgeFifo

Pointeur vers la fonction de rappel d’événement evtSerCx2SystemDmaTransmitPurgeFifo implémentée par le pilote. Ce membre est facultatif et peut être défini sur NULL pour indiquer que le pilote n’implémente pas la fonction. Toutefois, un pilote qui implémente cette fonction doit également implémenter Fonctions EvtSerCx2SystemDmaTransmitDrainFifo et EvtSerCx2SystemDmaTransmitCancelDrainFifo.

Remarques

La méthode SerCx2SystemDmaTransmitCreate accepte un pointeur vers une structure SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG en tant que paramètre d’entrée. Avant d’appeler SerCx2SystemDmaTransmitCreate, appelez la fonction SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT pour initialiser cette structure.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge à partir de Windows 8.1.
d’en-tête sercx.h

Voir aussi

DMA_ADAPTER_INFO_V1

EvtSerCx2SystemDmaTransmitCancelDrainFifo

EvtSerCx2SystemDmaTransmitCleanupTransaction

EvtSerCx2SystemDmaTransmitConfigureDmaChannel

EvtSerCx2SystemDmaTransmitDrainFifo

EvtSerCx2SystemDmaTransmitInitializeTransaction

EvtSerCx2SystemDmaTransmitPurgeFifo

IRP_MJ_WRITE

SERCX2_SYSTEM_DMA_TRANSMIT_CONFIG_INIT

SerCx2SystemDmaTransmitCreate

WdfDmaEnablerSetMaximumScatterGatherElements