Создать 2 устройства на одно физическое (PCI)
Имеется плата, подключенная к PCI, которая в системе видится как одно PCI-устройство. На плате функционировало 1 устройство (под него написан драйвер WDM PnP). Теперь на плату добавили второе устройство, идентичное первому (которое работает через тот-же контроллер PCI, что и первое устройство). Необходимо так изменить драйвер, чтоб при обнаружении такой PCI-платы он создавал в системе 2 устройства.
Ранее драйвер не задавал имя устройства (как и рекомендовано Microsoft для PnP), просто регистрировал интерфейс IoRegisterDeviceInterface для PDO в функции AddDevice. Как в данной ситуации лучше создать второе устройство? Желательно, чтоб система сама вызвала при этом из драйвера функцию AddDevice() для нового устройства.
если новое ус-во не определено как отдельная функция , то единственный выход регистрировать одним драйвером два логических ус-ва .
Цитата: makey
Подскажите наилучший способ решения следующей задачи.
Имеется плата, подключенная к PCI, которая в системе видится как одно PCI-устройство. На плате функционировало 1 устройство (под него написан драйвер WDM PnP). Теперь на плату добавили второе устройство, идентичное первому (которое работает через тот-же контроллер PCI, что и первое устройство). Необходимо так изменить драйвер, чтоб при обнаружении такой PCI-платы он создавал в системе 2 устройства.
Ранее драйвер не задавал имя устройства (как и рекомендовано Microsoft для PnP), просто регистрировал интерфейс IoRegisterDeviceInterface для PDO в функции AddDevice. Как в данной ситуации лучше создать второе устройство? Желательно, чтоб система сама вызвала при этом из драйвера функцию AddDevice() для нового устройства.
Имеется плата, подключенная к PCI, которая в системе видится как одно PCI-устройство. На плате функционировало 1 устройство (под него написан драйвер WDM PnP). Теперь на плату добавили второе устройство, идентичное первому (которое работает через тот-же контроллер PCI, что и первое устройство). Необходимо так изменить драйвер, чтоб при обнаружении такой PCI-платы он создавал в системе 2 устройства.
Ранее драйвер не задавал имя устройства (как и рекомендовано Microsoft для PnP), просто регистрировал интерфейс IoRegisterDeviceInterface для PDO в функции AddDevice. Как в данной ситуации лучше создать второе устройство? Желательно, чтоб система сама вызвала при этом из драйвера функцию AddDevice() для нового устройства.
Код инициализации и inf'нег в студию.
Задача решена созданием дополнительного именованого устройства (FDO) и привязкой этого устройства (не PnP) к PDO полученного от шинного драйвера.