структура SERIAL_COMMPROP (ntddser.h)
Структура SERIAL_COMMPROP определяет свойства последовательного порта.
Синтаксис
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;
Члены
PacketLength
Размер (в байтах) пакета данных, который начинается с этой структуры и содержит запрошенные данные свойства. Этот размер включает структуру SERIAL_COMMPROP и все дополнительные элементы массива ProvChar , которые следуют за этой структурой.
PacketVersion
Версия этой структуры. Текущий номер версии — 2.
ServiceMask
Битовая маска, указывающая, какие службы реализуются этим поставщиком связи. Для этого элемента всегда задано значение SERIAL_SP_SERIALCOMM поставщиками последовательной связи, включая поставщиков модемов. Элемент ProvSubType указывает конкретный тип реализуемых последовательных подключений (например, модем).
Reserved1
Не используется.
MaxTxQueue
Максимальный размер очереди передачи. Максимальный размер внутреннего выходного буфера драйвера последовательного контроллера в байтах. Значение, равное нулю, указывает, что поставщик последовательных последовательных сетей не вводит максимальное значение.
MaxRxQueue
Максимальный размер очереди получения. Максимальный размер внутреннего входного буфера драйвера последовательного контроллера в байтах. Значение, равное нулю, указывает, что поставщик последовательных последовательных сетей не вводит максимальное значение.
MaxBaud
Максимально допустимая скорость передачи данных. Драйвер последовательного контроллера на основе расширений задает для этого элемента скорость передачи данных, выраженную в битах в секунду (б/с). Например, если последовательный контроллер поддерживает максимальную скорость передачи данных в 115 200 бит/с, драйвер устанавливает MaxBaud = 115200.
Однако Serial.sys и многие старые драйверы последовательного контроллера устанавливают для MaxBaud один из битов флага SERIAL_BAUD_XXX, определенных в файле заголовка Ntddser.h. Для этого элемента определяются следующие значения.
Значение | Описание |
---|---|
SERIAL_BAUD_075 | 75 бит/с |
SERIAL_BAUD_110 | 110 бит/с |
SERIAL_BAUD_134_5 | 134,5 бит/с |
SERIAL_BAUD_150 | 150 бит/с |
SERIAL_BAUD_300 | 300 бит/с |
SERIAL_BAUD_600 | 600 бит/с |
SERIAL_BAUD_1200 | 1200 бит/с |
SERIAL_BAUD_1800 | 1800 бит/с |
SERIAL_BAUD_2400 | 2400 бит/с |
SERIAL_BAUD_4800 | 4800 бит/с |
SERIAL_BAUD_7200 | 7200 бит/с |
SERIAL_BAUD_9600 | 9600 бит/с |
SERIAL_BAUD_14400 | 14 400 бит/с |
SERIAL_BAUD_19200 | 19 200 бит/с |
SERIAL_BAUD_38400 | 38 400 бит/с |
SERIAL_BAUD_56K | 56 000 бит/с |
SERIAL_BAUD_57600 | 57 600 бит/с |
SERIAL_BAUD_115200 | 115 200 бит/с |
SERIAL_BAUD_128K | 128 000 бит/с |
SERIAL_BAUD_USER | Доступны программируемые тарифы baud. |
ProvSubType
Конкретный тип поставщика связи. Если для элемента ServiceMask задано значение SERIAL_SP_SERIALCOMM, provSubType имеет одно из следующих значений.
Значение | Значение |
---|---|
SERIAL_SP_UNSPECIFIED | Не указан |
SERIAL_SP_RS232 | Последовательный порт RS-232 |
SERIAL_SP_PARALLEL | Параллельный порт |
SERIAL_SP_RS422 | Последовательный порт RS-422 |
SERIAL_SP_RS423 | Последовательный порт RS-423 |
SERIAL_SP_RS449 | Последовательный порт RS-449 |
SERIAL_SP_MODEM | Модемное устройство |
SERIAL_SP_FAX | Устройство FAX |
SERIAL_SP_SCANNER | Устройство сканера |
SERIAL_SP_BRIDGE | Неопределенный сетевой мост |
SERIAL_SP_LAT | Протокол LAT |
SERIAL_SP_TELNET | Протокол TCP/IP Telnet® |
SERIAL_SP_X25 | Стандарты X.25 |
ProvCapabilities
Возможности, предоставляемые поставщиком. Для этого элемента задано значение ноль или побитовое ИЛИ одного или нескольких следующих битов флага.
Значение | Описание |
---|---|
SERIAL_PCF_DTRDSR | Поддерживаются DTR (data terminal ready) и DSR (data set ready). |
SERIAL_PCF_RTSCTS | Поддерживаются RTS (запрос на отправку) и CTS (не нужно отправлять). |
SERIAL_PCF_CD | Поддерживается CD (обнаружение оператора). |
SERIAL_PCF_PARITY_CHECK | Поддерживается проверка четности. |
SERIAL_PCF_XONXOFF | Поддерживается управление потоком XON (передача вкл.) и XOFF (выключение передачи). |
SERIAL_PCF_SETXCHAR | Символы XON и XOFF можно задать. |
SERIAL_PCF_TOTALTIMEOUTS | Поддерживаются тайм-ауты затраченного времени. |
SERIAL_PCF_INTTIMEOUTS | Поддерживаются интервалы времени ожидания. |
SERIAL_PCF_SPECIALCHARS | Поддерживаются специальные символы. |
SERIAL_PCF_16BITMODE | Поддерживается специальный 16-разрядный режим. |
SettableParams
Битовая маска, указывающая параметр связи, который можно изменить. Для этого элемента задано значение ноль или побитовое ИЛИ одного или нескольких следующих битов флага.
Значение | Описание |
---|---|
SERIAL_SP_PARITY | Тип четности (четный или нечетный) |
SERIAL_SP_BAUD | Скорость (бит/с) |
SERIAL_SP_DATABITS | Биты данных |
SERIAL_SP_STOPBITS | Стоп-биты |
SERIAL_SP_HANDSHAKING | Подтверждение (управление потоком) |
SERIAL_SP_PARITY_CHECK | Проверка четности |
SERIAL_SP_CARRIER_DETECT | Обнаружение оператора |
SettableBaud
Битовая маска, указывающая скорость baud, которую можно использовать. Таблицу, описывающую биты флага SERIAL_BAUD_XXXX, определенные для этого элемента, см. в описании элемента MaxBaud . SettableBaud имеет значение ноль или побитовое или одно или несколько битов флага.
Драйверы последовательного контроллера задают бит флага SERIAL_BAUD_USER в значении битовой маски SettableBaud , чтобы указать, что они поддерживают более высокую скорость выполнения, чем те, которые могут быть выражены другими битами флага SERIAL_BAUD_XXX . Например, драйвер, поддерживающий скорость 57600, 115200, 230400 и 460800 бит/с, устанавливает SettableBaud = (SERIAL_BAUD_57600 | SERIAL_BAUD_115200 | SERIAL_BAUD_USER).
SettableData
Количество битов данных, которые можно задать. Для этого элемента задано значение ноль или побитовое ИЛИ одного или нескольких следующих битов флага.
Значение | Описание |
---|---|
SERIAL_DATABITS_5 | 5 битов данных |
SERIAL_DATABITS_6 | 6 битов данных |
SERIAL_DATABITS_7 | 7 битов данных |
SERIAL_DATABITS_8 | Биты данных: 8 |
SERIAL_DATABITS_16 | 16 бит данных |
SERIAL_DATABITS_16X | Специальный широкий путь через последовательные аппаратные линии |
SettableStopParity
Параметры стоп-бита и четности, которые можно выбрать. Для этого элемента задано значение ноль или побитовое ИЛИ одного или нескольких следующих битов флага.
Значение | Описание |
---|---|
SERIAL_STOPBITS_10 | Один стоп-бит. |
SERIAL_STOPBITS_15 | Полтора стоп бита. |
SERIAL_STOPBITS_20 | Два стоп-бита. |
SERIAL_PARITY_NONE | Бит четности не используется. |
SERIAL_PARITY_ODD | Нечетная четность. Бит четности равен 1, если число 1 в значении символа равно. В противном случае бит четности равен 0. |
SERIAL_PARITY_EVEN | Даже паритет. Бит четности равен 1, если число 1 в значении символа является нечетным. В противном случае бит четности равен 0. |
SERIAL_PARITY_MARK | Бит четности всегда имеет значение 1. |
SERIAL_PARITY_SPACE | Бит четности всегда имеет значение 0. |
CurrentTxQueue
Размер очереди передачи. Этот элемент задает размер внутреннего выходного буфера драйвера последовательного контроллера в байтах. Нулевое значение указывает, что размер буфера недоступен.
Для SerCx2 и SerCx связанный драйвер последовательного контроллера обычно устанавливает для этого элемента нулевое значение. Serial.sys задает этому элементу ненулевое значение, указывающее размер выходного буфера.
CurrentRxQueue
Размер очереди получения. Этот элемент задает размер (в байтах) внутреннего входного буфера драйвера последовательного контроллера. Нулевое значение указывает, что размер буфера недоступен.
Для SerCx2 и SerCx этот элемент задается связанным драйвером последовательного контроллера. Для SerCx2 драйвер обычно устанавливает для этого элемента нулевое значение. Для SerCx драйвер обычно задает этому члену размер кольцевого буфера, который SerCx использует для буферизации полученных данных. Этот драйвер может вызвать метод SerCxGetRingBufferUtilization , чтобы получить размер кольцевого буфера из SerCx.
Serial.sys задает этому элементу ненулевое значение, указывающее размер входного буфера.
ProvSpec1
Данные, относящиеся к поставщику. Приложения должны игнорировать этот элемент, если не доступны данные конкретного поставщика о формате данных, необходимом для последовательного порта.
ProvSpec2
Данные, относящиеся к поставщику. Приложения должны игнорировать этот элемент, если не доступны данные конкретного поставщика о формате данных, необходимом для последовательного порта.
ProvChar[1]
Данные, относящиеся к поставщику. Приложения должны игнорировать этот элемент, если не доступны данные конкретного поставщика о формате данных, необходимом для последовательного порта. Этот элемент является первым элементом в массиве расширенных символов из одного или нескольких элементов. Все дополнительные элементы немедленно следуют за этим элементом. Элемент PacketLength указывает размер структуры SERIAL_COMMPROP , а также любые дополнительные элементы массива ProvChar , которые следуют за этой структурой.
Комментарии
Эта структура используется запросом IOCTL_SERIAL_GET_PROPERTIES .
Требования
Требование | Значение |
---|---|
Заголовок | ntddser.h |