При планировании добавления драйверов в Windows® 7 важно понимать требования цифровых подписей и ранжирование драйверов. Также следует спланировать процесс управления драйверами и их добавления. Этот раздел содержит базовые сведения по каждому из этих вопросов.
Содержание раздела
Требования цифровых подписей
Подписанные драйверы устройств являются ключевым компонентом безопасности Windows. У драйверов, устанавливаемых на 64-разрядные (x64) компьютеры, должна быть цифровая подпись. Хотя это и необязательно, такие драйверы рекомендуется подписывать перед установкой на компьютеры с архитектурой X86 и Itanium.
Внедренные подписи должны быть у всех драйверов, критических для загрузки. Цифровая подпись необязательна для драйверов Plug and Play (PnP). Но при установке в работающей операционной системе неподписанного драйвера PnP необходимы учетные данные администратора, и такие драйверы не будут устанавливаться в 64-разрядных операционных системах.
Существует два возможных способа подписывания драйвера.
- Цифровое подписывание драйверов режима ядра и
драйверов, критических для загрузки, выполняется с помощью метода,
называемого внедрением подписи. Каждый двоичный файл в пакете
драйверов подписывается внедренной подписью. Внедренные подписи
ускоряют загрузку. Для драйверов, не являющихся драйверами PnP,
подписи следует внедрять так, чтобы они не терялись при обновлении
операционной системы.
- Драйверы PnP с цифровой подписью содержат
файл каталога (CAT-файл) с цифровой подписью. Файл каталога
содержит хэш-значение всех файлов, указанных для установки в
INF-файле драйвера. Подписанный файл каталога - это все, что
необходимо для правильной установки большинства драйверов PnP.
Драйверы можно подписывать с помощью одного из двух источников.
- Лабораторий Windows Hardware Quality
Labs (WHQL), гарантирующих, что драйверы соответствуют требованиям
программы Windows Logo. WHQL создает каталог подписанных драйверов.
Для драйверов, критических для загрузки, следует добавить
дополнительные внедренные подписи, а не полагаться на каталог.
Внедренные подписи в файлах образов драйверов, критических для
загрузки, оптимизируют скорость загрузки операционной системы,
устраняя необходимость находить соответствующий файл каталога,
когда загрузчик операционной системы проверяет подпись
драйвера.
- Центра сертификации, с помощью сертификата
издателя программного обеспечения (SPC). Для драйверов, критических
для загрузки, и драйверов 64-разрядного (x64) ядра корпорация
Майкрософт предоставляет дополнительный сертификат, который можно
использовать для перекрестного подписывания драйверов. Если
драйверы не являются критическими для загрузки, то для них не
требуется ни перекрестное подписывание Майкрософт, ни внедряющееся
подписывание. Если необходимы гибкие возможности для
самостоятельного подписывания, можно использовать процесс
подписывания кода в режиме ядра Windows. Сведения о цифровых
подписях для модулей ядра в 64-разрядных системах см. на этом
веб-сайте корпорации Майкрософт (возможно, на
английском языке).
Для тестирования также можно использовать тестовые сертификаты.
Если драйвер предоставлен поставщиком в целях тестирования и еще не подписан, то для его проверки и тестирования его установки можно использовать тестовую подпись. Тестовое подписывание - это операция цифрового подписывания приложения закрытым ключом и соответствующим сертификатом подписывания кода, доверие к которому ограничивается средой тестирования.
Существует два основных способа создания таких тестовых сертификатов.
- Разработчики могут создать свои собственные
самозаверяющие сертификаты.
- Сертификаты могут быть выданы центрами
сертификации.
В любом случае тестовые сертификаты должны быть четко определены как пригодные только для целей тестирования. Например, к имени субъекта сертификата может быть добавлено слово «тест», а в сам сертификат включены дополнительные официальные заявления об отказе от ответственности. Рабочие сертификаты, выданные коммерческими центрами сертификации, следует использовать только для подписывания общедоступных бета-версий и окончательных версий программного обеспечения, а также внутреннего специализированного программного обеспечения.
Дополнительные сведения см. на этом веб-сайте корпорации Майкрософт (возможно, на английском языке).
При добавлении в Windows пакетов драйверов с тестовой подписью учитывайте следующие моменты.
- Тестовые сертификаты должны устанавливаться в
работающей операционной системе. Их установка в автономный образ
невозможна.
- Сертификат центра сертификации, выдавшего
тестовый сертификат, должен быть вставлен в хранилище сертификатов
доверенных корневых центров сертификации.
Примечание. Если тестовый сертификат является самозаверяющим (например, с помощью средства создания сертификатов MakeCert), то он также должен быть вставлен в хранилище сертификатов доверенных корневых центров сертификации.
- Тестовый сертификат, используемый для
подписывания пакета драйвера, должен быть вставлен в хранилище
сертификатов доверенных издателей.
- Тестовые сертификаты должны быть добавлены в
подключенном режиме (в работающий экземпляр образа Windows), прежде
чем для автономного добавления драйверов с тестовой подписью можно
будет использовать программу командной строки обслуживания образов
развертывания и управления ими (DISM).
- Система DISM будет проверять сертификаты WHQL
только для драйверов, необходимых для загрузки. Но существует
параметр командной строки системы DISM, переопределяющий это
поведение. Дополнительные сведения см. в разделе Параметры командной
строки для обслуживания драйверов.
- Чтобы установить и проверить драйверы с
тестовой подписью на 64-разрядных операционных системах, для
конфигурации загрузки Windows должен быть определен тестовый режим
(используя BCDEdit на конечном компьютере). В тестовом режиме
проверяется наличие подписи у образа драйвера, но проверка пути
сертификата не требует, чтобы его издатель был настроен как
доверенный корневой центр. Но, чтобы гарантировать правильность
обработки драйвера логикой установки и ранжирования драйверов PnP,
тестовый сертификат должен храниться в хранилище доверенных
сертификатов образа операционной системы. Сведения об использовании
тестового режима при разработке см. на этом веб-сайте корпорации Майкрософт (возможно, на английском
языке).
Внимание! | |
|
Управление драйверами
При добавлении нескольких драйверов следует создать отдельные папки для каждого драйвера или категории драйверов. Это гарантирует отсутствие конфликтов при добавлении драйверов с одинаковыми именами файлов. После установки драйвера в операционной системе он переименовывается в Oem*.inf, чтобы гарантировать уникальность имен файлов в операционной системе. Например, помещенные на хранение драйверы с именами MyDriver1.inf и MyDriver2.inf после установки переименовываются в Oem0.inf и Oem1.inf.
При указании пути к драйверу устройства в файле ответов все INF-файлы драйверов в указанном каталоге и подкаталогах добавляются в хранилище драйверов образа Windows. Например, если нужно добавить все драйверы, хранящиеся в каталогах «C:\Драйверы\Сеть», «C:\Драйверы\Видео» и «C:\Драйверы\Аудио» в образ Windows, можно просто указать в файле ответов путь к драйверам устройств «C:\Драйверы». Если файл ответов не используется, можно применить команду /recurse системы DISM. Дополнительные сведения о команде /recurse см. в разделе Параметры командной строки для обслуживания драйверов. Это гарантирует добавление драйверов из всех подкаталогов в хранилище драйверов образа Windows.
Если в образ добавляются все драйверы в указанном каталоге и подкаталогах, следует внимательно работать с файлом ответов или командами системы DISM, чтобы предотвратить увеличение размера образа за счет ненужных пакетов драйверов.
Но если способ управления папками драйверов, при котором в образ добавляются только необходимые драйверы, оказывается неудобным, необязательные для загрузки драйверы можно добавить интерактивно, вызвав установщик пакетов драйверов (DPInst). DPInst будет выборочно устанавливать драйверы, не являющиеся необходимыми для загрузки, только при наличии соответствующего оборудования, или если пакет драйверов лучше подходит для устройства.
Добавление драйверов
Добавление драйверов в образ Windows возможно на различных стадиях развертывания. Они могут добавляться в образ операционной системы автономно перед развертыванием, во время автоматического развертывания образа Windows с помощью файла ответов автоматической установки (Unattend.xml) и программы установки Windows или после развертывания в работающую операционную систему. Дополнительные сведения см. в разделе Общие сведения о стратегиях обслуживания.
Драйвер, добавляемый в автономный образ, либо помещается на хранение, либо автоматически устанавливается в образ.
- Драйверы, не являющиеся необходимыми для
загрузки, помещаются на хранение. Другими словами, они добавляются
в хранилище драйверов автономного образа. При запуске компьютера
PnP обнаружит драйвер и выполнит установку.
- Драйверы, критические для загрузки,
автоматически устанавливаются в систему. То есть, база данных
критических устройств (CDDB) и реестр будут изменены, а файлы будут
скопированы в систему в соответствии с указаниями, содержащимися в
INF-файле.
Автономно (перед развертыванием)
Автономное обслуживание - это полностью автономное изменение образа Windows 7 без загрузки операционной системы. Для добавления, удаления и перечисления драйверов автономного образа Windows можно использовать программу командной строки DISM. Система DISM устанавливается с ОС Windows 7, а также распространяется в составе предустановочного набора OPK Windows (Windows OPK) и набора автоматической установки Windows (Windows AIK). Дополнительные сведения о системе DISM см. в разделе Технический справочник по системе обслуживания образов развертывания и управления ими.
Для автономного добавления драйверов устройств используются следующие методы.
- Использование команд системы DISM для
операций добавления или удаления драйверов с подключенным или
примененным образом Windows или среды предустановки Windows.
Примечание. Систему DISM нельзя использовать для удаления драйверов, поставляемых с операционной системой (драйверы, установленные в Windows по умолчанию). Эта программа может использоваться только для удаления драйверов сторонних разработчиков или драйверов от производителей оборудования.
- Использование команд DISM для применения
файла ответов автоматической установки к подключенному или
примененному образу Windows.
Дополнительные сведения см. в разделе Добавление и удаление драйверов в автономном режиме.
С помощью системы DISM в автономный образ Windows можно добавлять только INF-драйверы. Драйверы, имеющие эмблему «Разработано для Windows» поставляются в виде CAB-файлов. При использовании системы DISM для установки перед установкой INF-файла необходимо развернуть CAB-файл. Драйвер, упакованный в EXE-файл или файл другого типа, должен устанавливаться в работающей операционной системе Windows. Чтобы запустить EXE-файл или пакет драйвера установщика Windows (MSI-файл), необходимо добавить к файлу ответов специальную команду установки пакета драйвера. Дополнительные сведения см. в разделе Добавление специальной команды к файлу ответов. Для установки MSI-файлов в работающей операционной системе также можно использовать программу OCSetup.
Использование программы установки Windows и файла ответов
Если при развертывании используется программа установки Windows, для добавления драйверов в образ можно использовать файл ответов автоматической установки. В этом файле ответов можно задать путь к драйверу устройства в сетевой папке (или локальный путь). Для этого нужно добавить компоненты Microsoft-Windows-PnpCustomizationWinPE или Microsoft-Windows-PnpCustomizationNonWinPE, а затем определить этапы настройки, предназначенные для их установки. При запуске программы установки Windows и задании имени файла ответов драйверы от производителей оборудования помещаются на хранение (добавляются в хранилище драйверов образа), а необходимые для загрузки драйверы автоматически устанавливаются (добавляются в образ для использования при загрузке компьютера). Файл ответов используется программой установки. Добавляя драйверы устройств на этапах настройки windowsPE или offlineServicing, можно устанавливать драйверы от производителя оборудования в образ Windows перед запуском компьютера. Этот метод позволяет также добавить в образ Windows драйверы устройств, критических для загрузки системы. Дополнительные сведения см. в разделе Добавление драйверов устройств с помощью программы установки Windows. Дополнительные сведения о принципах работы программы установки Windows см. в разделе Техническое руководство по программе установки Windows.
Если нужно добавить в среду предустановки Windows критические для загрузки драйверы, воспользуйтесь этапом настройки windowsPE, чтобы автоматически установить драйверы до загрузки образа среды предустановки Windows. Разница между добавлением драйверов, критических для загрузки, на этапах настройки windowsPE и offlineServicing состоит в том, что на этапе настройки windowsPE эти драйверы автоматически устанавливаются для использования средой предустановки Windows. На этапе же настройки offlineServicing драйверы помещаются на хранение в хранилище драйверов образа Windows.
Для добавления драйверов устройств с помощью программы установки Windows используются следующие методы.
- Использование файла ответов для добавления
драйверов во время этапа настройки offlineServicing
программы установки.
- Использование файла ответов для добавления
драйверов во время этапа настройки windowsPE программы
установки.
- Для ОС Windows Server® 2008 R2,
размещение драйверов в каталоге $WinPEDrivers$ для их
автоматической установки в процессе установки операционной
системы.
Дополнительные сведения об этих и других этапах настройки см. в разделе Этапы настройки программы установки Windows.
При использовании служб развертывания Windows (WDS) для развертывания в Windows Server 2008 R2 можно добавлять драйверы устройств на сервер и настраивать их на развертывание на клиенты в ходе сетевой установки. Эта функция настраивается с помощью создания на сервере «группы драйверов», добавления в нее пакетов и последующего добавления фильтров с целью определения клиентов, на которых будут устанавливаться эти драйверы. Можно настроить, чтобы драйверы устанавливались в зависимости от оборудования клиента (например, изготовителя или поставщика BIOS) и выпуска образа Windows, выбранного в ходе установки. Кроме того, можно настроить, будут ли клиенты устанавливать все пакеты группы драйверов или только драйверы, соответствующие оборудованию клиента. Дополнительные сведения о реализации этой функции см. в документации по службам развертывания Windows.
В работающей операционной системе
Для добавления, удаления и перечисления драйверов в работающей операционной системе можно использовать программу PNPUtil. Либо для автоматизации установки драйверов при загрузке компьютера в режиме аудита можно использовать файл ответов. Эти методы могут быть полезны, если нужно поддерживать простой образ Windows, позднее добавляя лишь те драйверы, которые необходимы для конкретной конфигурации оборудования. Дополнительные сведения об использовании режима аудита см. в разделе Настройка Windows в режиме аудита.
В работающей операционной системе для добавления драйверов устройств можно использовать следующие методы.
- Использование PnPUtil для добавления и
удаления драйверов PnP. Дополнительные сведения см. в разделе
Установка самонастраивающихся устройств из
командной строки с помощью средства PnPUtil.
- Использование файла ответов для автоматизации
установки драйверов PnP при загрузке компьютера в режиме аудита.
Дополнительные сведения см. в разделе Добавление драйвера по
сети в режиме аудита.
- Использование файла ответов и DPInst.exe для
автоматизации установки обнаруженных драйверов PnP при загрузке
компьютера в режиме аудита.
DPInst - это компонент Driver Install Frameworks (DIFx) версии 2.1. Он входит в пакет Windows Driver Kit (WDK). Дополнительные сведения см. в разделе Как участвовать в программе WDK и WLK в Microsoft Connect.
Ранжирование драйверов
Одна из наиболее распространенных проблем при развертывании драйверов возникает, когда драйвер успешно импортируется в хранилище драйверов, но после подключения системы технология PnP обнаруживает драйвер с более высоким рангом и устанавливает его вместо нужного драйвера.
Диспетчер Plug and Play Windows ранжирует свойства пакета драйвера в порядке важности.
- Подписывание
- Соответствие идентификатора PnP
- Дата драйвера
- Версия драйвера
Например, если для устройства найден лучший драйвер (с точки зрения соответствия идентификатора PnP), но он неподписан, то преимущество предоставляется подписанному драйверу с совместимым идентификатором. Кроме того, ранг более нового драйвера может оказаться ниже, чем у более старого драйвера, если последний подписан или обладает идентификатором PnP, который лучше соответствует нужному.
Дополнительные сведения о ранжировании драйверов см. на этом веб-сайте корпорации Майкрософт (возможно, на английском языке).
Дополнительные сведения
Следующие веб-сайты содержат дополнительные сведения о требованиях к драйверам устройств.
- Дополнительные сведения о развертывании
драйверов PnP см. на этом веб-сайте корпорации Майкрософт.
- Дополнительные сведения о цифровых подписях и
разработке драйверов см. на соответствующей странице на главном веб-сайте Windows для производителей оборудования
(материалы могут быть на английском языке).