Wdf - Serial - предотвращает автоматическое назначение драйвера устройства всем экземплярам устройства - PullRequest
0 голосов
/ 09 мая 2019

Я уверен, что название действительно плохо написано, но я, честно говоря, не могу придумать краткое описание, подходящее для вопроса. Пожалуйста, предложите!

Я пишу пользовательский / модифицированный драйвер последовательного порта KMDF COM-порта, используя WDF, унаследованный от примера драйвера Serial.sys, который MS предоставляет в качестве примера кода с открытым исходным кодом.

Кроме того, я изменил GUID класса устройства и класса экземпляра устройства, создав новый, описывающий мое устройство.

Я успешно установил драйвер для определенного COM-порта, на котором он мне нужен, и в Диспетчере устройств вижу, что я получаю свой экземпляр устройства в дереве настраиваемых классов устройств, я вижу свойства устройства и все выглядит хорошо. В разделе драйверов указан мой пример с именем wdfserial.sys

Теперь проблема в том, что другие 5 COM-портов, которые находятся на компьютере, не обновляются моим драйвером и не отображаются в классе моего устройства, а идентифицируются как универсальный, коммуникационный порт (COM x).

Однако в окне свойств и драйверов я вижу перечисленные serial.sys (универсальный драйвер последовательного порта, поставляемый с Windows), serenum.sys (идет вместе с serial), а также мой wdfserial.sys.

Теперь, меня не будет беспокоить, если он будет указан там, проблема в том, что драйвер также будет использоваться этими COM-портами, если я открою один из них. Я знаю это, потому что я вижу, как мои результаты DeviceIOControl поступают в код, который открывает любой из этих 5 com-портов с классом c # SerialPort по умолчанию.

Я искал и искал любые сопоставления Serial.sys или старых GUID в модифицированном коде моего драйвера, но ничего не смог идентифицировать.

Возможно, нельзя использовать другой драйвер только для одного экземпляра одного и того же оборудования? Что мне здесь не хватает?

То же самое относится как к Win7, так и к Win10.

Спасибо

...