estrutura SERIAL_HANDFLOW (ntddser.h)
A estrutura SERIAL_HANDFLOW especifica as configurações de handshake e controle de fluxo para uma porta serial.
Sintaxe
typedef struct _SERIAL_HANDFLOW {
ULONG ControlHandShake;
ULONG FlowReplace;
LONG XonLimit;
LONG XoffLimit;
} SERIAL_HANDFLOW, *PSERIAL_HANDFLOW;
Membros
ControlHandShake
Uma máscara de bits que especifica as linhas de controle que a porta serial usa para o controle de fluxo. Esse membro é definido como zero ou como OR bit a bit ou um ou mais dos sinalizadores a seguir.
Valor | Descrição |
---|---|
SERIAL_DTR_CONTROL | O DTR (terminal de dados pronto) está habilitado. |
SERIAL_DTR_HANDSHAKE | O DTR é usado para o controle de fluxo de entrada. |
SERIAL_CTS_HANDSHAKE | CTS (limpar para enviar) é usado para o controle de fluxo de saída. |
SERIAL_DSR_HANDSHAKE | A DSR (conjunto de dados pronto) é usada para o controle de fluxo de saída. |
SERIAL_DCD_HANDSHAKE | O DCD (detecção da operadora de dados) é usado para o controle de fluxo de saída. |
SERIAL_DSR_SENSITIVITY | Ignore os caracteres que chegam à porta serial quando a linha DSR está inativa. |
SERIAL_ERROR_ABORT | Anule uma operação de transmissão ou recebimento se ocorrer um erro. |
O SerCx2 dá suporte ao sinalizador SERIAL_CTS_HANDSHAKE e pode ou não dar suporte aos outros seis sinalizadores definidos para esse membro, dependendo do driver do controlador serial e dos recursos do hardware do controlador serial. O SerCx dá suporte apenas aos quatro primeiros sinalizadores na tabela anterior. Serial.sys dá suporte a todos os sinalizadores na tabela anterior.
FlowReplace
Uma máscara de bits que especifica o comportamento do controle de fluxo. Esse membro é definido como zero ou como OR bit a bit ou um ou mais dos sinalizadores a seguir.
Valor | Descrição |
---|---|
SERIAL_AUTO_TRANSMIT | Use XON/XOFF para controle de fluxo de dados transmitidos. |
SERIAL_AUTO_RECEIVE | Use XON/XOFF para controle de fluxo de dados recebidos. |
SERIAL_ERROR_CHAR | Insira o caractere de erro nos dados recebidos quando ocorrer um erro. Para obter mais informações, consulte a descrição do membro ErrorChar no SERIAL_CHARS. |
SERIAL_NULL_STRIPPING | Remova automaticamente caracteres nulos dos dados recebidos. |
SERIAL_BREAK_CHAR | Insira o caractere de quebra nos dados recebidos quando ocorrer uma interrupção. Para obter mais informações, consulte a descrição do membro BreakChar no SERIAL_CHARS. |
SERIAL_RTS_CONTROL | O RTS (solicitação para enviar) está habilitado. |
SERIAL_RTS_HANDSHAKE | O RTS é usado para o controle de fluxo de saída. |
SERIAL_XOFF_CONTINUE | Continue a transmitir depois de enviar XOFF para o dispositivo na outra extremidade da linha. |
O SerCx2 dá suporte aos sinalizadores SERIAL_RTS_CONTROL e SERIAL_RTS_HANDSHAKE, mas normalmente não dá suporte aos outros seis sinalizadores definidos para esse membro, dependendo do driver do controlador serial e dos recursos do hardware do controlador serial. O SerCx dá suporte apenas aos sinalizadores SERIAL_RTS_CONTROL e SERIAL_RTS_HANDSHAKE. Serial.sys dá suporte a todos os sinalizadores na tabela anterior.
XonLimit
Limite de XON. Quando o número de caracteres no buffer de recebimento interno fica abaixo do limite do XON, o driver do controlador serial usa os sinais de controle de fluxo para instruir o remetente a retomar o envio de caracteres.
XoffLimit
Limite de XOFF. Quando o número de caracteres no buffer de recebimento interno atinge o limite de XOFF, o driver do controlador serial usa os sinais de controle de fluxo para instruir o remetente a parar de enviar caracteres.
Comentários
Essa estrutura é usada pelas solicitações IOCTL_SERIAL_GET_HANDFLOW e IOCTL_SERIAL_SET_HANDFLOW .
Depois de enviar um caractere XOFF (transmitir) , a porta serial para de transmitir imediatamente, sem enviar mais caracteres. Esse comportamento dá suporte a portas seriais que interpretam qualquer caractere que segue um XOFF como um XON implícito (transmissão).
SerCx2 e SerCx dão suporte apenas a subconjuntos dos sinalizadores definidos para os membros ControlHandShake e FlowControl . Uma solicitação IOCTL_SERIAL_SET_HANDFLOW que especifica um sinalizador sem suporte é concluída com STATUS_NOT_IMPLEMENTED.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddser.h |