Funzione SerCxGetRingBufferUtilization (sercx.h)
Il metodo SerCxGetRingBufferUtilization consente al driver del controller seriale di determinare la quantità di buffer circolare type-ahead attualmente riempita dai dati ricevuti dalla porta seriale.
Sintassi
void SerCxGetRingBufferUtilization(
[in] WDFDEVICE Device,
[out, optional] PULONG BytesUsed,
[out, optional] PULONG BufferSize
);
Parametri
[in] Device
Handle WDFDEVICE per l'oggetto dispositivo framework che rappresenta il controller seriale.
[out, optional] BytesUsed
Numero di byte di dati non letti attualmente contenuti nel buffer circolare type-ahead usato per archiviare i dati ricevuti.
[out, optional] BufferSize
Dimensione, in byte, del buffer circolare type-ahead usato per archiviare i dati ricevuti.
Valore restituito
nessuno
Osservazioni
Il driver del controller seriale chiama questa funzione per determinare la quantità di spazio di archiviazione disponibile nel buffer circolare type-ahead. L'estensione del controller seriale (SerCx) gestisce questo buffer per contenere i dati ricevuti dal driver del controller seriale dalla porta seriale quando non viene elaborata alcuna richiesta di lettura dal client. Questa funzione fornisce le informazioni richieste dal driver per eseguire in modo accurato il controllo del flusso software (XON/XOFF).
Per implementare il controllo del flusso software, il driver del controller seriale monitora la quantità di spazio disponibile nel buffer circolare type-ahead. Lo spazio disponibile, in byte, è uguale a BufferSize - BytesUsed. Quando lo spazio disponibile scende al di sotto di una soglia specificata dal client, XoffLimit, il driver del controller seriale trasmette un carattere XOFF per indicare alla porta di trasmissione di sospendere la trasmissione. Successivamente, quando lo spazio disponibile supera una soglia specificata dal client, XonLimit, il driver trasmette un carattere XON per indicare alla porta di trasmissione di riprendere la trasmissione. In genere, il client ha specificato queste due soglie in una precedente richiesta di controllo di I/O IOCTL_SERIAL_SET_HANDFLOW.
SerCx valuta lo spazio disponibile nel buffer circolare type-ahead nel contesto delle impostazioni correnti del controllo del flusso e dell'handshaking. Dopo che il buffer circolare type-ahead svuota completamente, SerCx chiama la funzione di callback EvtSerCxReceive del driver in modo che il driver possa inviare un XON e riprendere la ricezione dei dati. La funzione EvtSerCxReceive può chiamare SerCxGetRingBufferUtilization per determinare se inviare un XON.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 8. |
Piattaforma di destinazione | Universale |
Intestazione | sercx.h |
IRQL | <= DISPATCH_LEVEL |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per