structure SERCX2_SYSTEM_DMA_RECEIVE_CONFIG (sercx.h)
La structure SERCX2_SYSTEM_DMA_RECEIVE_CONFIG contient des informations que la version 2 de l’extension de framework série (SerCx2) utilise pour configurer un nouvel objet de réception DMA système.
Syntaxe
typedef struct _SERCX2_SYSTEM_DMA_RECEIVE_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_RECEIVE_INITIALIZE_TRANSACTION EvtSerCx2SystemDmaReceiveInitializeTransaction;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CLEANUP_TRANSACTION EvtSerCx2SystemDmaReceiveCleanupTransaction;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CONFIGURE_DMA_CHANNEL EvtSerCx2SystemDmaReceiveConfigureDmaChannel;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_ENABLE_NEW_DATA_NOTIFICATION EvtSerCx2SystemDmaReceiveEnableNewDataNotification;
PFN_SERCX2_SYSTEM_DMA_RECEIVE_CANCEL_NEW_DATA_NOTIFICATION EvtSerCx2SystemDmaReceiveCancelNewDataNotification;
} SERCX2_SYSTEM_DMA_RECEIVE_CONFIG, *PSERCX2_SYSTEM_DMA_RECEIVE_CONFIG;
Membres
Size
Taille, en octets, de cette structure. La méthode SerCx2SystemDmaReceiveCreate 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 de lecture (IRP_MJ_READ) 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 réception système-DMA. Si la longueur de la mémoire tampon dans une demande de lecture est inférieure à cette longueur minimale, SerCx2 utilise des E/S programmées (PIO) pour la transaction.
DmaAlignment
Exigence d’alignement DMA. Spécifie comment l’adresse de départ d’un transfert dans une transaction de réception système-DMA 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 points/regroupements pour un transfert DMA dans une transaction de réception système-DMA.
DmaWidth
Largeur du registre de données à l’adresse spécifiée par DeviceAddress. Les valeurs possibles sont Width8Bits, Width16Bits, Width32Bitset Width64Bits.
DeviceAddress
Adresse traduite à partir de laquelle le contrôleur DMA transfère. 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 réception. 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, consultez la description du membre minimumTransferUnit
Exclusive
Indique s’il faut utiliser des transactions de réception système-DMA exclusivement pour gérer les requêtes d’écriture (IRP_MJ_READ). Défini sur TRUE pour indiquer que les demandes de lecture doivent utiliser exclusivement des transactions de réception système-DMA. Défini sur faux pour indiquer que les demandes de lecture peuvent utiliser une combinaison de transactions de réception système-DMA et de transactions de réception PIO.
Définissez ce membre sur TRUE uniquement si l’unité de transfert minimale pour les transactions de réception DMA système est d’un octet, la longueur minimale des transactions est d’un octet et que la mémoire tampon de lecture de la transaction peut démarrer sur n’importe quelle limite d’octets en mémoire.
Si
Quelle que soit la valeur de ce membre, les transactions piO-receive sont utilisées pour enregistrer les données non lues dans le FIFO de réception avant que le contrôleur série ne quitte l’état d’alimentation de l’appareil D0 pour entrer un état à faible alimentation.
EvtSerCx2SystemDmaReceiveInitializeTransaction
Pointeur vers la fonction de rappel d’événements evtSerCx2SystemDmaReceiveInitializeTransaction 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.
EvtSerCx2SystemDmaReceiveCleanupTransaction
Pointeur vers la fonction de rappel d’événements evtSerCx2SystemDmaReceiveCleanupTransaction 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.
EvtSerCx2SystemDmaReceiveConfigureDmaChannel
Pointeur vers la fonction de rappel d’événement evtSerCx2SystemDmaReceiveConfigureDmaChannel 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.
EvtSerCx2SystemDmaReceiveEnableNewDataNotification
Pointeur vers la fonction de rappel d’événement evtSerCx2SystemDmaReceiveEnableNewDataNotification 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 une fonction EvtSerCx2SystemDmaReceiveCancelNewDataNotification.
EvtSerCx2SystemDmaReceiveCancelNewDataNotification
Pointeur vers l’implémentation du pilote EvtSerCx2SystemDmaReceiveCancelNewDataNotification fonction de rappel d’événement. 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 une fonction EvtSerCx2SystemDmaReceiveEnableNewDataNotification.
Remarques
La méthode SerCx2SystemDmaReceiveCreate accepte un pointeur vers une structure SERCX2_SYSTEM_DMA_RECEIVE_CONFIG en tant que paramètre d’entrée. Avant d’appeler SerCx2SystemDmaReceiveCreate, appelez la fonction SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT ou SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT_NEW_DATA_NOTIFICATION 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
CM_PARTIAL_RESOURCE_DESCRIPTOR
EvtSerCx2SystemDmaReceiveCancelNewDataNotification
EvtSerCx2SystemDmaReceiveCleanupTransaction
EvtSerCx2SystemDmaReceiveConfigureDmaChannel
EvtSerCx2SystemDmaReceiveEnableNewDataNotification
EvtSerCx2SystemDmaReceiveInitializeTransaction
SERCX2_SYSTEM_DMA_RECEIVE_CONFIG_INIT