Драйвер Kmdf - Ошибка обнаружения последовательного драйвера - PullRequest
0 голосов
/ 09 мая 2019

Мало что или нет, я пишу модифицированную версию драйвера последовательного порта, основанную на образце драйвера serial.sys, который MS предоставляет и утверждает, что он совпадает с драйвером, поставляемым с Windows.Результат является своего рода анализатором.

Одной из необходимых модификаций является необходимость знать ошибку четности для каждого байта, приходящего на порт.По этой причине я изменил метод прерывания, который устанавливает флаг PE (ошибка четности) errorWord, и заменил проверку, чтобы убедиться, что мы установили comport для замены error char на наш собственный char, и сделал так, чтобы он всегда вставлял char со значением 0x0A, иДобавлен метод прерывания данных, чтобы всегда вставлять 0x0F перед чтением символа.Com установлен, чтобы отметить паритет.

У меня есть устройство, отправляющее мне байты каждые 200 мс, от 0x01 до 0x1F, первые 8 байтов с меткой четности (ошибка четности), последние 8 с пробелом (без ошибки).

ПроблемаЯ получаю, что не каждый байт с ошибкой рассматривается как ошибка.Я постоянно вижу либо 3-й, либо 4-й байт, который должен был иметь префикс 0x0A с 0x0F вместо этого.

Есть ли здесь какая-либо известная информация о неточности, или о прерываниях, которые поступают не в правильном порядке, или какие-либо идеи о том, какдостичь этого по-другому?

Примечание: использование только общего драйвера и его решение в клиентском приложении - это не пойдет.Это должно быть сделано водителем.

Спасибо

...