estrutura SERIAL_COMMPROP (ntddser.h)
A estrutura SERIAL_COMMPROP especifica as propriedades de uma porta serial.
Sintaxe
typedef struct _SERIAL_COMMPROP {
USHORT PacketLength;
USHORT PacketVersion;
ULONG ServiceMask;
ULONG Reserved1;
ULONG MaxTxQueue;
ULONG MaxRxQueue;
ULONG MaxBaud;
ULONG ProvSubType;
ULONG ProvCapabilities;
ULONG SettableParams;
ULONG SettableBaud;
USHORT SettableData;
USHORT SettableStopParity;
ULONG CurrentTxQueue;
ULONG CurrentRxQueue;
ULONG ProvSpec1;
ULONG ProvSpec2;
WCHAR ProvChar[1];
} SERIAL_COMMPROP, *PSERIAL_COMMPROP;
Membros
PacketLength
O tamanho, em bytes, do pacote de dados que começa com essa estrutura e que contém os dados de propriedade solicitados. Esse tamanho inclui a estrutura SERIAL_COMMPROP e quaisquer elementos adicionais da matriz ProvChar que seguem essa estrutura.
PacketVersion
A versão dessa estrutura. O número da versão atual é 2.
ServiceMask
Uma máscara de bits que indica quais serviços são implementados por esse provedor de comunicações. Esse membro é sempre definido como SERIAL_SP_SERIALCOMM por provedores de comunicação serial, incluindo provedores de modem. O membro ProvSubType indica o tipo específico de comunicações serial implementadas (por exemplo, modem).
Reserved1
Não usado.
MaxTxQueue
Tamanho máximo da fila de transmissão. O tamanho máximo, em bytes, do buffer de saída interno do driver do controlador serial. Um valor zero indica que nenhum valor máximo é imposto pelo provedor serial.
MaxRxQueue
Tamanho máximo da fila de recebimento. O tamanho máximo, em bytes, do buffer de entrada interno do driver do controlador serial. Um valor zero indica que nenhum valor máximo é imposto pelo provedor serial.
MaxBaud
A taxa máxima de baud aceitável. Um driver de controlador serial baseado em extensão define esse membro como uma taxa de baud expressa em bits por segundo (bps). Por exemplo, se o controlador serial der suporte a uma taxa máxima de baud de 115.200 bps, o driver definirá MaxBaud = 115200.
No entanto, Serial.sys e muitos drivers de controlador serial mais antigos definem MaxBaud como um dos bits de sinalizador SERIAL_BAUD_XXX definidos no arquivo de cabeçalho Ntddser.h. Os valores a seguir são definidos para esse membro.
Valor | Descrição |
---|---|
SERIAL_BAUD_075 | 75 bps |
SERIAL_BAUD_110 | 110 bps |
SERIAL_BAUD_134_5 | 134,5 bps |
SERIAL_BAUD_150 | 150 bps |
SERIAL_BAUD_300 | 300 bps |
SERIAL_BAUD_600 | 600 bps |
SERIAL_BAUD_1200 | 1.200 bps |
SERIAL_BAUD_1800 | 1.800 bps |
SERIAL_BAUD_2400 | 2.400 bps |
SERIAL_BAUD_4800 | 4.800 bps |
SERIAL_BAUD_7200 | 7.200 bps |
SERIAL_BAUD_9600 | 9.600 bps |
SERIAL_BAUD_14400 | 14.400 bps |
SERIAL_BAUD_19200 | 19.200 bps |
SERIAL_BAUD_38400 | 38.400 bps |
SERIAL_BAUD_56K | 56.000 bps |
SERIAL_BAUD_57600 | 57.600 bps |
SERIAL_BAUD_115200 | 115.200 bps |
SERIAL_BAUD_128K | 128.000 bps |
SERIAL_BAUD_USER | As taxas de baud programáveis estão disponíveis. |
ProvSubType
O tipo de provedor de comunicações específico. Quando o membro ServiceMask é definido como SERIAL_SP_SERIALCOMM, ProvSubType é definido como um dos valores a seguir.
Valor | Significado |
---|---|
SERIAL_SP_UNSPECIFIED | Não Especificado |
SERIAL_SP_RS232 | Porta serial RS-232 |
SERIAL_SP_PARALLEL | Porta paralela |
SERIAL_SP_RS422 | Porta serial RS-422 |
SERIAL_SP_RS423 | Porta serial RS-423 |
SERIAL_SP_RS449 | Porta serial RS-449 |
SERIAL_SP_MODEM | Dispositivo modem |
SERIAL_SP_FAX | Dispositivo FAX |
SERIAL_SP_SCANNER | Dispositivo scanner |
SERIAL_SP_BRIDGE | Ponte de rede não especificada |
SERIAL_SP_LAT | Protocolo LAT |
SERIAL_SP_TELNET | Protocolo Telnet® TCP/IP |
SERIAL_SP_X25 | Padrões X.25 |
ProvCapabilities
Os recursos oferecidos pelo provedor. Esse membro é definido como zero ou como o OR bit a bit de um ou mais dos bits de sinalizador a seguir.
Valor | Descrição |
---|---|
SERIAL_PCF_DTRDSR | Há suporte para DTR (terminal de dados pronto) e DSR (conjunto de dados pronto). |
SERIAL_PCF_RTSCTS | Há suporte para RTS (solicitação para enviar) e CTS (limpar para enviar). |
SERIAL_PCF_CD | Há suporte para CD (detecção de operadora). |
SERIAL_PCF_PARITY_CHECK | Há suporte para verificação de paridade. |
SERIAL_PCF_XONXOFF | Há suporte para o controle de fluxo XON (transmissão) e XOFF (transmissão off). |
SERIAL_PCF_SETXCHAR | Os caracteres XON e XOFF são configuráveis. |
SERIAL_PCF_TOTALTIMEOUTS | Há suporte para tempo limite total decorrido. |
SERIAL_PCF_INTTIMEOUTS | Há suporte para intervalos de tempo limite. |
SERIAL_PCF_SPECIALCHARS | Há suporte para caracteres especiais. |
SERIAL_PCF_16BITMODE | Há suporte para o modo especial de 16 bits. |
SettableParams
Uma máscara de bits que indica o parâmetro de comunicação que pode ser alterado. Esse membro é definido como zero ou como o OR bit a bit de um ou mais dos bits de sinalizador a seguir.
Valor | Descrição |
---|---|
SERIAL_SP_PARITY | Tipo de paridade (mesmo ou ímpar) |
SERIAL_SP_BAUD | Taxa de transmissão |
SERIAL_SP_DATABITS | Bits de dados |
SERIAL_SP_STOPBITS | Bits de parada |
SERIAL_SP_HANDSHAKING | Handshaking (controle de fluxo) |
SERIAL_SP_PARITY_CHECK | Verificação de paridade |
SERIAL_SP_CARRIER_DETECT | Detecção de operadora |
SettableBaud
Uma máscara de bits que indica as taxas de baud que podem ser usadas. Para obter uma tabela que descreve os bits de sinalizador SERIAL_BAUD_XXX definidos para esse membro, consulte a descrição do membro MaxBaud . SettableBaud é definido como zero ou para o bit a bit OR ou um ou mais desses bits de sinalizador.
Os drivers de controlador serial definem o bit de sinalizador SERIAL_BAUD_USER no valor de máscara de bits SettableBaud para indicar que eles dão suporte a taxas de baud mais altas do que aquelas que podem ser expressas pelos outros bits de sinalizador SERIAL_BAUD_XXX . Por exemplo, um driver que dá suporte a taxas de baud de 57600, 115200, 230400 e 460800 bps define SettableBaud = (SERIAL_BAUD_57600 | SERIAL_BAUD_115200 | SERIAL_BAUD_USER).
SettableData
O número de bits de dados que podem ser definidos. Esse membro é definido como zero ou como o OR bit a bit de um ou mais dos bits de sinalizador a seguir.
Valor | Descrição |
---|---|
SERIAL_DATABITS_5 | 5 bits de dados |
SERIAL_DATABITS_6 | 6 bits de dados |
SERIAL_DATABITS_7 | 7 bits de dados |
SERIAL_DATABITS_8 | 8 bits de dados |
SERIAL_DATABITS_16 | 16 bits de dados |
SERIAL_DATABITS_16X | Caminho largo especial por meio de linhas de hardware serial |
SettableStopParity
As configurações de stop-bit e paridade que podem ser selecionadas. Esse membro é definido como zero ou como o OR bit a bit de um ou mais dos bits de sinalizador a seguir.
Valor | Descrição |
---|---|
SERIAL_STOPBITS_10 | Um bit de parada. |
SERIAL_STOPBITS_15 | Uma parada e meia. |
SERIAL_STOPBITS_20 | Dois bits de parada. |
SERIAL_PARITY_NONE | Nenhum bit de paridade é usado. |
SERIAL_PARITY_ODD | Paridade estranha. O bit de paridade será 1 se o número de 1s no valor do caractere for par. Caso contrário, o bit de paridade será 0. |
SERIAL_PARITY_EVEN | Paridade mesmo. O bit de paridade será 1 se o número de 1s no valor do caractere for ímpar. Caso contrário, o bit de paridade será 0. |
SERIAL_PARITY_MARK | O bit de paridade é sempre definido como 1. |
SERIAL_PARITY_SPACE | O bit de paridade é sempre definido como 0. |
CurrentTxQueue
Transmitir tamanho da fila. Esse membro especifica o tamanho, em bytes, do buffer de saída interno do driver do controlador serial. Um valor igual a zero indica que o tamanho do buffer não está disponível.
Para SerCx2 e SerCx, o driver do controlador serial associado normalmente define esse membro como zero. Serial.sys define esse membro como um valor diferente de zero que indica o tamanho do buffer de saída.
CurrentRxQueue
Receber o tamanho da fila. Esse membro especifica o tamanho, em bytes, do buffer de entrada interno do driver do controlador serial. Um valor igual a zero indica que o tamanho do buffer não está disponível.
Para SerCx2 e SerCx, esse membro é definido pelo driver do controlador serial associado. Para SerCx2, o driver normalmente define esse membro como zero. Para o SerCx, o driver normalmente define esse membro como o tamanho do buffer de anel que o SerCx usa para armazenar dados recebidos em buffer. Esse driver pode chamar o método SerCxGetRingBufferUtilization para obter o tamanho do buffer de anel do SerCx.
Serial.sys define esse membro como um valor diferente de zero que indica o tamanho do buffer de entrada.
ProvSpec1
Dados específicos do provedor. Os aplicativos devem ignorar esse membro, a menos que dados específicos do provedor sobre o formato de dados exigido pela porta serial esteja disponível.
ProvSpec2
Dados específicos do provedor. Os aplicativos devem ignorar esse membro, a menos que dados específicos do provedor sobre o formato de dados exigido pela porta serial esteja disponível.
ProvChar[1]
Dados específicos do provedor. Os aplicativos devem ignorar esse membro, a menos que dados específicos do provedor sobre o formato de dados exigido pela porta serial esteja disponível. Esse membro é o primeiro elemento em uma matriz de caracteres largos de um ou mais elementos. Todos os elementos adicionais seguem imediatamente este membro. O membro PacketLength especifica o tamanho da estrutura SERIAL_COMMPROP mais quaisquer elementos adicionais da matriz ProvChar que seguem essa estrutura.
Comentários
Essa estrutura é usada pela solicitação IOCTL_SERIAL_GET_PROPERTIES .
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddser.h |