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 |