Предварительная установка драйверов USB WinXP для возможности подключения устройства без взаимодействия - PullRequest
5 голосов
/ 23 июля 2010

Мы небольшой производитель оборудования.Большинство наших продуктов используют USB для программирования используемых контроллеров.Текущая ситуация такова, что программирование аппаратного обеспечения (часть сборочного процессора) довольно трудоемко.Каждый раз, когда новое USB-устройство подключается к Windows, запрашивается установка драйвера.Это означает, что для каждого нового продукта мы должны пройти процесс «нет, не ходи в интернет» -> «да, искать автоматически» -> «готово».Мы даже должны сделать это дважды для каждого продукта.

Я экспериментировал с предустановкой Windows (DPInst), но, похоже, это только облегчает успешную часть "да, поиск автоматически".Есть ли способ полностью установить драйверы после подключения USB-устройства?

С уважением,

Рональд

Ответы [ 2 ]

7 голосов
/ 26 июля 2010

Я полагаю, что у ваших устройств есть уникальный серийный номер USB, и, следовательно, каждое из них определяется как новое устройство, которого раньше не было.

Если это так, то решение заключается в том, чтобы http://www.lvr.com/usbfaq.htm:

Во время тестирования устройств мы подключаем много идентичных устройств, за исключением серийных номеров.Как можно запретить Windows запрашивать установку нового драйвера при каждом подключении устройства?

Описанный ниже метод заставляет Windows 2000 и XP игнорировать серийный номер устройства.Рекомендуется только для тестовых сред.

Этот ключ реестра определяет, использует ли Windows серийные номера устройств или игнорирует их:

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ UsbFlags]

ЭтоМожно игнорировать все серийные номера, хотя такой подход НЕ рекомендуется.Чтобы игнорировать все серийные номера, в приведенном выше ключе измените это значение на ноль:

GlobalDisableSerNumGen = 1

Чтобы игнорировать серийный номер для отдельного устройства, создайте запись под приведенным выше.. \ UsbFlags key.Имя должно начинаться с «IgnoreHWSerNum», за которым следуют поставщик и идентификатор продукта устройства.Значение 1 = «отключить серийный номер».

Пример (идентификатор поставщика = 0925h, идентификатор продукта = 016Ah):

IgnoreHWSerNum0925016A = 1

Anальтернативное решение аппаратного / встроенного программного обеспечения заключается в отключении серийного номера USB устройства во время производства (например, с помощью ссылки, возможно, сделанной тестовым устройством).Без серийного номера USB Windows назначит устройству псевдосерийный номер на основе его положения в дереве соединений.Это вряд ли изменится во время производственного цикла, поэтому все устройства будут рассматриваться как идентичные, и Windows не будет беспокоиться о новом драйвере.

4 голосов
/ 26 июля 2010

У меня была такая же проблема 5 лет назад.

Основная проблема заключается в том, что установка драйверов USB после Plug & Play основного устройства работает под учетной записью LocalSystem .Чтобы не было проблем с безопасностью, Microsoft разрешает установку драйверов без подписи Microsoft .Начиная с Windows Server 2003, есть документированный способ (см. http://www.microsoft.com/whdc/driver/install/authenticode.mspx).

Если у вас есть управляемая корпоративная среда (вы можете подготовить компьютеры, которые будут использовать ваши устройства Plug & Play), то есть обходной путь, который решает проблему наWindows XP. Я предложил это 5 лет назад для одного из моих клиентов. Он отлично работает примерно 5 лет в среде с некоторыми из 10000 компьютеров с Windows XP.

Идея решения очень проста: ваши драйверы (например, файл CAT) должен быть подписан с помощью подписи, которая

  • имеет как 1.3.6.1.5.5.7.3.3 («Подписание кода»), так и 1.3.6.1.4.1.311.10.3.6 («Проверка компонентов системы Windows») OID как расширение расширенного использования ключа (EKU)
  • сертификат или его родительский сертификат должны быть установлены в Root (Trusted Root Certification) устройства или AuthRoot (сторонние корневые центры сертификации) хранилище сертификатов

Если вы сделаете это на компьютере с Windows XP,операционная система будет интерпретировать ваш драйвер как драйвер Microsoft со знаком.

Где бы вы ни вставили в реестр путь к источнику драйвера.

...