Funzione SerCxGetRingBufferUtilization (sercx.h)
Il metodo
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 utilizzato per archiviare i dati ricevuti.
[out, optional] BufferSize
Dimensioni, 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) mantiene questo buffer per contenere i dati ricevuti dal driver del controller seriale quando non viene elaborata alcuna richiesta di lettura dal client. Questa funzione fornisce le informazioni necessarie al driver per eseguire accuratamente 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 - Byteused. 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 sale al di sopra di 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 richiesta di controllo di I/O precedente 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 il driver EvtSerCxReceive funzione di callback in modo che il driver possa inviare un XON e riprendere la ricezione dei dati. La funzione evtSerCxReceive
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile a partire da Windows 8. |
piattaforma di destinazione | Universale |
intestazione |
sercx.h |
IRQL | <= DISPATCH_LEVEL |