Некорректная работа USB Serial принтера. В чём дело?
Имеется система Windows 10 IoT Enterprise (исходная точка разработки, по определённым причинам поменять на другую её не получится). Под неё разрабатывается система, частью которой являются внешние устройства, одно из которых - принтер (не классический HP и т.п.). При подключении этого принтера к системе, даже в случае если разрабатываемое ПО не запущено, принтер начинает печатать "мусорные бланки". Подключается он посредством USB-B to USB-A кабеля, в системе определяется как USB Serial Device с COM9 - исходя из данных девайс менеджера системы. Во время процесса этой печати так же невозможно программно открыть COM порт, который задействован для принтера. Открытие и печать того, что нам нужно, можно произвести только по окончанию печати. Методом долгих исследований удалось выяснить, что дело в usbser.sys драйвере Windows 10 IoT Enterprise (FTDI драйвер для этого устройства корректно не ставится). Мусорная печать начинается только после запуска системы в момент опроса всех подключённых устройств. Или после того как USB-B кабель был вставлен в порт принтера при уже загруженной системе, при отключении - сразу останавливается. Под рукой оказались Windows 10 Pro и Windows 10 Enterprise Evaluation (без IoT) - при подключении принтера тем же способом к ним такого поведения не наблюдается. COM порт успешно открывается сразу же и принтер без проблем начинает печатать сходу. Тип устройства и драйвер определяются такими же.
Теоретическая причина такого странного поведения: указанный USB драйвер для IoT Enterprise отличается по формату отправляемых дескрипторов для этого класса устройств и принтер воспринимает низкоуровневые USB запроса как данные на печать.
Втыкать в другой USB-порт на компьютере IoT Enterprise пробовали, вероятность "грязного внутренного буфера" тоже исключается: питание принтера идёт от внешнего источника в 12V и до включения в него USB кабеля печать не происходит.
Вопрос: есть ли возможность заменить конкретно для этого устройства подходящий драйвер другим или написать под него фильтр? Наткнулся на информацию по последним, но так и не понял как правильно настроить.
Пробовали принудительно в диспетчере устройств заменить драйвер используемый устройством на взятый из обычной винды? Возможно помогут в отладке вот эти утилиты: usb devices view - утилита для просмотра USB девайсов и usboblivion - утилита для удаления следов USB девайсов.