bResult возвращает false, может я не верно передаю структуру?
SERIAL_BAUD_RATE s;
s.BaudRate = BAUD_9600;
ResetEvent(ConDevice);
bool bResult = DeviceIoControl(ConDevice, // запрошенное устройство
IOCTL_SERIAL_SET_BAUD_RATE, // выполняемая операция
&s.BaudRate, sizeof(s),
NULL, 0, // буфер вывода
&ReturnLength, // # возвращено байтов
(LPOVERLAPPED)Overlap); // синхронизация ввода/вывода (I/O)