Поделиться через


структура 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

См. также раздел

IOCTL_SERIAL_GET_PROPERTIES