Если вы работали на платформе * NIX, посмотрите /usr/include/errno.h (где, вероятно, есть #include для /usr/include/sys/errno.h) и посмотрите, что совпадает с вашим кодом возврата , Так как вы работаете в Windows, вам придется использовать MSDN. Код ошибки 87:
ERROR_INVALID_PARAMETER 87 One of the parameters was invalid.
Я полагаю, что GetCommState () не нравится ваш параметр hDevice. Вызов SecureZeroMemory () не требуется, если вы используете memset (). Вы проверили, установлены ли все необходимые параметры dcb относительно hDevice?