Она большая:
typedef struct _COMMPROP { WORD wPacketLength; WORD wPacketVersion; DWORD dwServiceMask; DWORD dwReserved1; DWORD dwMaxTxQueue; DWORD dwMaxRxQueue; DWORD dwMaxBaud; DWORD dwProvSubType; DWORD dwProvCapabilities; DWORD dwSettableParams; DWORD dwSettableBaud; WORD wSettableData; WORD wSettableStopParity; DWORD dwCurrentTxQueue; DWORD dwCurrentRxQueue; DWORD dwProvSpec1; DWORD dwProvSpec2; WCHAR wcProvChar[1]; } COMMPROP;
wPacketLength - Размер структуры в байтах.
wPacketVersion - Версия структуры.
dwServiceMask - Маска для коммуникационных портов SP_SERIALCOMM.
dwReserved1 - Не используется.
dwMaxTxQueue - Максимальный размер внутреннего буфера передачи, если равен нулю, то без ограничений.
DwMaxRxQueue - Максимальный размер внутреннего буфера приема.
DwMaxBaud - Максимальная скорость обмена принимает следующие значения:
BAUD_075 75 BAUD_110 110 BAUD_134_5 134.5 BAUD_150 150 BAUD_300 300 BAUD_600 600 BAUD_1200 1200 BAUD_1800 1800 BAUD_2400 2400 BAUD_4800 4800 BAUD_7200 7200 BAUD_9600 9600 BAUD_14400 14400 BAUD_19200 19200 BAUD_38400 38400 BAUD_56K 56K BAUD_57600 57600 BAUD_115200 115200 BAUD_128K 128K BAUD_USER Пользовательская
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 - Допустимая скорость обмена.
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 - Данные зависящие от устройства.
dwProvSpec2 - Данные зависят от устройства.
wcProvChar - Данные зависят от устройства.
Размер wPacketLength играет немного непривычную роль. С помощью него можно узнать есть ли дополнительная информация. То есть, если Вы помощью GetCommProperties() получили данные и wPacketLength > sizeof(COMMPROP), то нужно выделять дополнительную память.
Эта дополнительная информация может быть структурой MODEMDEVCAPS, если тип устройства модем и находиться она будет на месте wcProvChar.