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_
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
EvtSerCx2SystemDmaTransmitCancelDrainFifo
EvtSerCx2SystemDmaTransmitCleanupTransaction
EvtSerCx2SystemDmaTransmitConfigureDmaChannel
EvtSerCx2SystemDmaTransmitDrainFifo
EvtSerCx2SystemDmaTransmitInitializeTransaction
EvtSerCx2SystemDmaTransmitPurgeFifo