Установите USB-устройство без приглашения диспетчера - PullRequest
0 голосов
/ 06 мая 2010

У нас есть USB-устройство и драйверы (.inf, libusb.dll, libusb.sys) и мы можем установить его с помощью мастера установки устройств Windows (указав на INF-файл). Однако нам нужно установить драйверы без использования мастера (пассивно, поэтому пользователю ничего не нужно делать). Кто-нибудь знает, как этого можно достичь?

Ответы [ 2 ]

2 голосов
/ 06 мая 2010

Вы добавили тег «установщик», поэтому я предполагаю, что вы говорите о каком-то инсталляционном пакете, таком как установщик Windows, InstallShield InstallScript и т. Д.

В этом случае вам, вероятно, следует использовать DIFx Framework от Microsoft .

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

Я использовал DIFx как для установок на основе установщика Windows, так и для установок InstallScript. Очень удобный, простой в отладке и эффективный.

1 голос
/ 28 мая 2010

Мой коллега придумал ответ, который работает очень хорошо. Похоже, что если комбинация оборудования и драйвера не подписана WHQL, мастер установки нового оборудования всегда будет отображаться в Win XP. Однако, используя следующий метод, можно сделать так, чтобы кнопка «Поиск» в мастере автоматически находила ваш драйвер. В Windows 7 нет подсказки, и устройство устанавливается нормально. Тем не менее, вам нужно остерегаться 64-битных машин, поскольку они имеют более строгие правила подписывания.

Итак, вот соответствующая выдержка из всего документа :

Используйте модуль слияния DIFxAPi. (Прочитайте хорошее введение в драйверы в Windows, использование файлов INF и DIFxAPP .) Модуль слияния DIFxAPI включен в WDK в 'WDDK // redist \ DIFx \ DIFxApp \ MergeModule \' каталог. Модуль слияния может быть включен в пакет MSI и может быть установлен для установки нескольких драйверов устройств. Вот шаги для создания MSI с модулем слияния DIFxAPP:

  1. В папке установки создайте отдельный каталог в папке приложений для пакета драйверов и добавьте файлы драйверов в папку.
  2. Добавьте DIFxApp.msm в проект установки.
  3. Сборка настроек
  4. Используйте Orca для редактирования таблицы базы данных MSI и добавления компонента INF в таблицу модулей слияния DIFxAPP.

    1. Установка Orca включена в Windows SDK в каталоге «C: \ Program Files \ Microsoft SDKs \ Windows \ v7.0 \ Bin». (Windows SDK может быть загружен с Microsoft )
    2. Запустите Orca и выберите пакет MSI, который необходимо изменить.
      • Прочтите часть 5 для автоматизации.
    3. В таблице «Файл» найдите INF-файл пакета драйвера, который вы хотите установить, и скопируйте значение компонента.
    4. Создать новую строку в таблице MsiDriverPackages. Добавьте значение компонента в поле компонента. Можно использовать следующие flags (хотя некоторые игнорируются Windows 7):

      • 0 - Не установлено (по умолчанию)
      • 1 - Принудительная установка драйвера, даже если в данный момент установлены драйверы лучшее соответствие, чем устанавливаемый драйвер
      • 2 - Подавить сообщение, сообщающее пользователю подключать устройства после драйвера был установлен.
      • 4 - Запретить добавление записи в «Установка и удаление программ для водителя».
        Драйвер будет удален при удалении основного приложения.
      • 8 - Установить неподписанные пакеты драйверов
      • 16 - удаление двоичных файлов драйверов во время удаления.
    5. Сохраните MSI. Чтобы автоматизировать процесс, редактирование базы данных MSI может быть записано в преобразование, а затем преобразование может быть применено в процессе после сборки.
      1. Откройте MSI в Orca.
      2. Выберите Преобразование-> Новое преобразование
      3. Выполните шаги 3 и 4 в указанных выше направлениях.
      4. Выберите Tranform-> Generate transform и сохраните преобразование.
      5. Добавьте следующую строку в пост-сборку проекта установки MsiDb.exe -t transform.mst -d $ (TargetDir) \ DriverInstall.msi Примечание. MsiDB.exe поставляется с пакетом Microsoft SDK и находится в C: \ Program Files \ Microsoft SDKs \ Windows \ v7.0 \ Bin

Если вы получили сообщение об ошибке установки из MSI (например, я получил код ошибки 2356, который в результате оказался из-за неверного значения Flag), используйте функцию Validate Orca, чтобы увидеть, есть ли какие-либо ошибки. РЕДАКТИРОВАТЬ: Исправление этих ошибок до сих пор не избавился от ошибки. Я помню, что читал, что файлы inf должны быть в своем собственном подкаталоге, но это тоже не решило мою проблему.

...