Partager via


SerCxGetRingBufferUtilization, fonction (sercx.h)

La méthode SerCxGetRingBufferUtilization permet au pilote du contrôleur série de déterminer la quantité de mémoire tampon en anneau de type à avance 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

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 qui sont actuellement contenues dans la mémoire tampon en anneau de type-avance utilisée pour stocker les données reçues.

[out, optional] BufferSize

Taille, en octets, de la mémoire tampon en anneau de type avant utilisée pour stocker les données reçues.

Valeur de retour

Aucun

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-avance. L’extension du contrôleur série (SerCx) gère cette mémoire tampon pour contenir les données reçues par le pilote du contrôleur série à partir 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 du contrôleur série surveille la quantité d’espace disponible dans la mémoire tampon en anneau de type-avant. L’espace disponible, en octets, est égal à BufferSize - octets utilisés. Lorsque l’espace disponible tombe en dessous d’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 en anneau de type avant dans le contexte du contrôle de flux actuel et des paramètres de négociation. Une fois la mémoire tampon en anneau de type avant vide complètement, SerCx appelle la EvtSerCxReceive fonction de rappel 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.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 8.
plateforme cible Universel
d’en-tête sercx.h
IRQL <= DISPATCH_LEVEL

Voir aussi

evtSerCxReceive

IOCTL_SERIAL_SET_HANDFLOW