Получаем информацию о порте, заполняя структуру DCB:
BOOL GetCommState ( HANDLE hFile, // указатель на устройство LPDCB lpDCB // указатель на блок DCB );
Если все нормально и информация получена, то вернется ненулевое значение. Порт должен быть естественно открыт.
Вторая функция передает информацию порт:
BOOL SetCommState ( HANDLE hFile, // указатель на порт LPDCB lpDCB // указатель на DBC );
Она точна такая же. Но тут надо быть внимательным. Ее можно вызывать и в ходе приема передачи, только она сработает даже если в буфере есть данные. И еще она завершится ошибкой, если в структуре DCB поля XonChar и XoffChar одинаковые.
Эти две функции удобно применять вместе при настройке порта. Получил информацию из порта (Get) внес изменения и установил новые значения (Set).