Работа с коммуникационными портами (COM и LPT) в программах для Win32


    d8ef8794     

DWORD dwSize; WORD wVersion; WORD


typedef struct _COMM_CONFIG { DWORD dwSize; WORD wVersion; WORD wReserved; DCB dcb; DWORD dwProviderSubType; DWORD dwProviderOffset; DWORD dwProviderSize; WCHAR wcProviderData[1]; } COMMCONFIG, *LPCOMMCONFIG;
Основной частью этой структуры является уже знакомый нам DCB. Остальные поля содержат вспомогательную информацию, которая, для наших целей, не представляет особого интереса (однако эта информация может быть полезной для получения дополнительных данных о порте). Познакомимся поближе с полями:

dwSize       Задает размер структуры COMMCONFIG в байтах   wVersion       Задает номер версии структуры COMMCONFIG. Должен быть равным 1.   wReserved       Зарезервировано и не используется   dcb       Блок управления устройством (DCB) для порта RS-232.   dwProviderSubType       Задает тип устройства и формат устройство-зависимого блока информации. Фактически это тип порта. Конкретные значения данного поля приведены в описании структуры COMMPROP выше.   dwProviderOffset       Смещение, в байтах, до устройство-зависимого блока информации от начала структуры.   dwProviderSize       Размер, в байтах, устройство-зависимого блока информации.   wcProviderData       Устройство-зависимый блок информации. Это поле может быть любого размера или вообще отсутствовать. Поскольку структура COMMCONFIG может быть в дальшейшем расширена, для определения положения данного поля следует использовать dwProviderOffset. Если dwProviderSubType PST_RS232 или PST_PARALLELPORT, то данное поле отсутствует. Если dwProviderSubType PST_MODEM, то данное поле содержит структуру MODEMSETTINGS. Не смотря на то, что нам нужен только DCB, приходится иметь дело со всеми полями. Заполнение данной структуры противоречивыми данными может привести к неправильной настройке порта, поэтому следует пользоваться функцией GetCommConfig:


Содержание  Назад  Вперед