SerCxGetRingBufferUtilization, fonction (sercx.h)
La méthode SerCxGetRingBufferUtilization permet au pilote de contrôleur série de déterminer la quantité de la mémoire tampon en anneau de type avant est actuellement remplie par les données reçues du port série.
Syntaxe
void SerCxGetRingBufferUtilization(
[in] WDFDEVICE Device,
[out, optional] PULONG BytesUsed,
[out, optional] PULONG BufferSize
);
Paramètres
[in] Device
Un handle WDFDEVICE pour l’objet d’appareil framework qui représente le contrôleur série.
[out, optional] BytesUsed
Nombre d’octets de données non lues actuellement contenues dans la mémoire tampon en anneau de type avant utilisée pour stocker les données reçues.
[out, optional] BufferSize
Taille, en octets, de la mémoire tampon d’anneau de type avant utilisée pour stocker les données reçues.
Valeur de retour
None
Remarques
Le pilote du contrôleur série appelle cette fonction pour déterminer la quantité d’espace de stockage disponible dans la mémoire tampon en anneau de type avant. L’extension de contrôleur série (SerCx) gère cette mémoire tampon pour contenir les données que le pilote du contrôleur série reçoit du port série lorsqu’aucune demande de lecture du client n’est en cours de traitement. Cette fonction fournit les informations dont le pilote a besoin pour effectuer avec précision le contrôle de flux logiciel (XON/XOFF).
Pour implémenter le contrôle de flux logiciel, le pilote de contrôleur série surveille la quantité d’espace disponible dans la mémoire tampon d’anneau de type avant. L’espace disponible, en octets, est égal à BufferSize - BytesUsed. Lorsque l’espace disponible est inférieur à un seuil spécifié par le client, XoffLimit, le pilote du contrôleur série transmet un caractère XOFF pour indiquer au port de transmission de suspendre la transmission. Plus tard, lorsque l’espace disponible dépasse un seuil spécifié par le client, XonLimit, le pilote transmet un caractère XON pour indiquer au port de transmission de reprendre la transmission. En règle générale, le client a spécifié ces deux seuils dans une demande de contrôle d’E /S IOCTL_SERIAL_SET_HANDFLOW précédente.
SerCx évalue l’espace disponible dans la mémoire tampon d’anneau de type avant dans le contexte des paramètres de contrôle de flux et de négociation actuels. Une fois la mémoire tampon d’anneau de type avant complètement vidée, SerCx appelle la fonction de rappel EvtSerCxReceive du pilote afin que le pilote puisse envoyer un XON et reprendre la réception des données. La fonction EvtSerCxReceive peut appeler SerCxGetRingBufferUtilization pour déterminer s’il faut envoyer un XON.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 8. |
Plateforme cible | Universal |
En-tête | sercx.h |
IRQL | <= DISPATCH_LEVEL |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour