Função SerCxGetRingBufferUtilization (sercx.h)
O método
Sintaxe
void SerCxGetRingBufferUtilization(
[in] WDFDEVICE Device,
[out, optional] PULONG BytesUsed,
[out, optional] PULONG BufferSize
);
Parâmetros
[in] Device
Um identificador WDFDEVICE para o objeto de dispositivo da estrutura que representa o controlador serial.
[out, optional] BytesUsed
O número de bytes de dados não lidos que estão atualmente contidos no buffer de anel com antecedência que é usado para armazenar dados recebidos.
[out, optional] BufferSize
O tamanho, em bytes, do buffer de anel de tipo à frente usado para armazenar dados recebidos.
Valor de retorno
Nenhum
Observações
O driver do controlador serial chama essa função para determinar quanto espaço de armazenamento está disponível no buffer de anel com antecedência. A extensão do controlador serial (SerCx) mantém esse buffer para conter dados que o driver do controlador serial recebe da porta serial quando nenhuma solicitação de leitura do cliente está sendo processada no momento. Essa função fornece as informações necessárias para que o driver execute com precisão o controle de fluxo de software (XON/XOFF).
Para implementar o controle de fluxo de software, o driver do controlador serial monitora a quantidade de espaço disponível no buffer de anel de tipo à frente. O espaço disponível, em bytes, é igual a bufferSize - bytesUsed. Quando o espaço disponível fica abaixo de um limite especificado pelo cliente, XoffLimit, o driver do controlador serial transmite um caractere XOFF para informar a porta de transmissão para pausar a transmissão. Posteriormente, quando o espaço disponível aumenta acima de um limite especificado pelo cliente, XonLimit, o driver transmite um caractere XON para informar à porta de transmissão para retomar a transmissão. Normalmente, o cliente especificou esses dois limites em uma solicitação de controle de E/S IOCTL_SERIAL_SET_HANDFLOW anterior.
O SerCx avalia o espaço disponível no buffer de anel de tipo à frente no contexto do controle de fluxo atual e das configurações de handshaking. Depois que o buffer de anel type-ahead esvaziar completamente, o SerCx chamará o do driver EvtSerCxReceive função de retorno de chamada para que o driver possa enviar um XON e retomar o recebimento de dados. A função EvtSerCxReceive pode chamar SerCxGetRingBufferUtilization para determinar se um XON deve ser enviado.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows 8. |
da Plataforma de Destino |
Universal |
cabeçalho | sercx.h |
IRQL | <= DISPATCH_LEVEL |