Большое спасибо за ваши ответы, они, безусловно, поставили меня на правильный путь. К сожалению, использование C # или другого языка не является моим решением, поэтому мне пришлось как-то сделать это на C #.
Используя взлом отражения, который Tergiver предоставил здесь Мне удалось установить большинство свойств, найденных в структуре DCB. Я обнаружил, что ErrorChar и BreakChar можно легко установить, назначив необходимое значение SerialPort.ParityReplace, хотя, на мой взгляд, это совсем не очевидно.
Установка тайм-аутов была простой задачей, используя тот же хак, структуру COMMTIMEOUTS и p / Invoking SetCommTimeouts.
Для управления потоком было немного сложно, потому что это делается внутри SetCommState путем вызова DeviceIoControl. Моя проблема заключалась в том, что я не мог установить связь между флагами DCB, ControlHandShake и FlowReplace. Я не смог найти документацию о порядке флагов в 32-битной структуре DCB, поэтому я установил для свойства Flags все значение 0. В итоге ControlHandShake и FlowReplace равны 0.
Кажется, что отправка / получение данных работает нормально, я надеюсь, что я ничего не пропустил здесь.