Чтение бита четности

Здравствуйте.

У меня есть вопрос: Как считать бит четности через с++?

Написана программа которая будет общаться с устройством через компорт, передача и прием, и по ТЗ нужно использовать 9й бит для проверки. Пока все реализовано через виртуальные порты и на одном конце программа посылает сигналы а на другом возвращает обратно. И метод проверки - это устанавливать разные настройки в этих программах.

Я открываю порт как файл, и указываю при этом паритет, проверку на паритет, и сообщения об ошибках:

C++Выделить код

1
2
3
4

    dcb.fParity = true;
    dcb.fErrorChar = true;
    dcb.fAbortOnError = true;
    dcb.Parity = ODDPARITY;

В одной программе, допустим, ODD, а в другой EVEN... и нифига. ReadFile не возвращает значение 0.

Погуглив, наткнулся на варианты : писать свой драйвер, или с помощью ассемблера добраться до цели. 1е мне кажется через чур сложным, 2е то что доступ возможен к определенному регистру определенного порта, но если у меня несколько портов, и я желаю переключаться?

Плюс нашел странный

пост

о том что fParity не робит от слова совсем.

Итого: можно ли получить 9й бит входящего байта через язык С++? Может я что то делаю не так? Если с спп надежды нет, можно ли через ассемблер работать с виртуальными портами, и вообще портами которые меняются?

Благодарю.