Выбрать главу

dwProvSubType

Тип коммуникационного порта. Возможны следующие значения данного поля:

PST_FAX Факс PST_LAT LAT протокол PST_MODEM Модем PST_NETWORK_BRIDGE Сетевой мост PST_PARALLELPORT Параллельный порт PST_RS232 Последовательный порт RS-232 PST_RS422 Порт RS-422 PST_RS423 Порт RS-423 PST_RS449 Порт RS-449 PST_SCANNER Сканнер PST_TCPIP_TELNET Протокол TCP/IP TelnetR PST_UNSPECIFIED Неизвестное устройство PST_X25 Устройство стандарта X.25

dwProvCapabilities

Битовая маска. Определяет возможности предоставляемые устройством. Возможны следующие значения:

PCF_16BITMODE Поддерживается специальный 16-битный режим PCF_DTRDSR Поддерживаются сигналы DTR/DSR. PCF_INTTIMEOUTS Поддерживается межсимвольный тайм-аут. PCF_PARITY_CHECK Поддерживается контроль четности. PCF_RLSD Поддерживается определение наличия сигнала в приемной линии. PCF_RTSCTS Поддерживаются сигналы RTS/CTS. PCF_SETXCHAR Поддерживаются задаваемые символы XON/XOFF. PCF_SPECIALCHARS Поддерживаются спецсимволы. PCF_TOTALTIMEOUTS Поддерживаются общие тайм-ауты (ожидаемое время). PCF_XONXOFF Поддерживается программное (XON/XOFF) управление потоком.

dwSettableParams

Битовая маска. Определяет допустимые для изменения параметры. Возможны следующие значения:

SP_BAUD Скорость обмена. SP_DATABITS Бит в символе. SP_HANDSHAKING Рукопожатие (управление потоком). SP_PARITY Четность. SP_PARITY_CHECK Контроль четности. SP_RLSD Детектирование наличия сигнала в приемной линии. SP_STOPBITS Количество стоповых бит.

dwSettableBaud

Битовая маска. Определяет допустимый набор скоростей обмена. Допустимые для данного поля значения указаны в описании поля dwMaxBaud.

wSettableData

Битовая маска. Определяет допустимые длины символов, в битах. Возможны следующие значения:

DATABITS_5 5 бит DATABITS_6 6 бит DATABITS_7 7 бит DATABITS_8 8 бит DATABITS_16 16 бит DATABITS_16Х Специальный широкий канал через аппаратную последовательную линию.

wSettableStopParity

Битовая маска. Определяет допустимое количество стоповых бит и режимы четности. Возможны следующие значения:

STOPBITS_10 Один стоповый бит STOPBITS_15 Полтора стоповыx бита STOPBITS_20 Два стоповых бита PARITY_NONE Без четности PARITY_ODD Дополнение до нечетности PARITY_EVEN Дополнение до четности PARITY_MARK Бит четности всегда "1" PARITY_SPACE Бит четности всегда "0"

dwCurrentTxQueue

Определяет текущий размер, в байтах, внутренней очереди передачи драйвера. Нулевое значение свидетельствует о недоступности данного параметра.

dwCurrentRxQueue

Определяет текущий размер, в байтах, внутренней очереди приема драйвера. Нулевое значение свидетельствует о недоступности данного параметра.

dwProvSpec1

Устройство-зависимые данные. Программа должна игнорировать содержимое данного поля, за исключением случаев, когда Вы точно знаете формат этих данных. Занесите в данное поле значение COMMPROP_INITIALIZED, если поле wPacketLength уже содержит правильное значение.

dwProvSpec2

Устройство-зависимые данные. Программа должна игнорировать содержимое данного поля, за исключением случаев, когда Вы точно знаете формат этих данных.

wcProvChar

Устройство-зависимые данные. Программа должна игнорировать содержимое данного поля, за исключением случаев, когда Вы точно знаете формат этих данных.

Информация хранящаяся в структуре COMMPROP требуется редко, так как чаще всего точно известно с каким типом портов будет работать программа.

Остановлюсь чуть подробнее на описании некоторых полей. Поле wPacketLength играет несколько иную роль, чем поле DCBlength структуры DCB, хотя из его описания это не следует. Секрет прост. Поле wcProvChar, расположеное в конце структуры, может содержать, а может и не содержать, данных. Вы не в состоянии это узнать не запросив информацию. В свою очередь, перед запросом информации Вы должны выделить (и обнулить) память под структуру COMMPROP. Поэтому последовательность шагов для получения всей информации следующая: