Пакет драйверов Windows что это за программа и нужна ли она
Обновлено: 21.11.2024
Начиная с некоторого момента после Windows 10 версии 2004, драйверы, работающие в Windows, будут классифицироваться как драйверы Windows или драйверы рабочего стола Windows.
Драйверы для Windows будут работать во всех версиях Windows, включая HoloLens, Xbox, Factory OS и Windows Desktop. Драйверы Windows Desktop будут работать только в версиях Windows Desktop.
Классификация драйверов Windows будет расширена и заменит текущую классификацию универсальных драйверов.
На этой странице представлен предварительный обзор будущих требований к драйверам Windows.
Различие между драйверами для Windows и драйверами для настольных компьютеров Windows не влияет на какие-либо драйверы, отправляемые и сертифицируемые для Windows 10 версии 2004. Изменения в сертификации и отправке произойдут позднее.
Требования к драйверам Windows
Когда драйверы Windows станут вариантом сертификации, будут применяться следующие требования:
- Соответствует принципам проектирования DCH.
- Следуйте принципам изоляции пакетов драйверов.
- Следуйте требованиям к уровням API.
- Сертифицирован в рамках программы совместимости оборудования Windows с использованием лабораторного комплекта оборудования. Обратите внимание, что требования процесса сертификации программы совместимости оборудования Windows применяются как к драйверам KMDF, так и к драйверам UMDF.
Драйверы для Windows и драйверы для настольных компьютеров Windows
В следующей таблице приведены различия, указанные выше:
Функция | Драйверы Windows | Windows Драйверы рабочего стола |
---|---|---|
Работает на рабочем столе Windows | Да | < td style="text-align: center;">Да|
Работает в версиях Windows, отличных от настольных | Да | Нет |
Должен быть сертифицирован WHCP | Да | Нет |
WDK и HLK являются основными средствами разработки и сертификации драйверы | Да | Да |
Соблюдение более строгих требований к надежности и удобству обслуживания (например, изоляция пакетов драйверов) | Да | Нет |
Хотя для драйвера, работающего только на рабочем столе Windows, не требуется, чтобы он соответствовал дополнительным требованиям для драйвера Windows, это повысит удобство обслуживания и надежность драйвера, а также подготовит драйвер к возможной будущей сертификации на не- Настольные версии Windows.
Пакет драйверов включает в себя все программные компоненты, которые необходимо предоставить, чтобы ваше устройство совместимо с Windows. Обычно пакет драйвера содержит следующие компоненты:
Далее приводится краткое описание каждого компонента пакета драйверов.
В WDK входят различные образцы пакетов драйверов. Дополнительные сведения см. в разделе Примеры файлов установки устройств
INF-файл
Каждый пакет драйверов должен включать INF-файл, который компоненты установки устройства считывают при установке устройства. Файл INF не является сценарием установки. Это текстовый файл в формате ASCII или Unicode (только UTF-16), в котором содержится информация об устройстве и драйвере, включая файлы драйвера, записи реестра, идентификаторы устройств, файлы каталогов и сведения о версии, необходимые для установки пакета драйверов на устройство.< /p>
Точное содержимое и формат файла INF зависят от класса установки устройства, к которому относится INF. Сводка разделов INF описывает информацию, которая требуется для каждого типа INF. Как правило, информация о каждом производителе находится в разделе INF Models. Записи в разделе «Модели» относятся к разделам INF DDInstall, которые содержат сведения о конкретных моделях.
Инструмент InfVerif, который находится в каталоге \tools набора драйверов Microsoft Windows (WDK), проверяет синтаксис и структуру всех межклассовых разделов и директив INF вместе с специфичные для класса расширения для всех классов настройки, кроме принтеров.
Начиная с Windows 2000, вы можете использовать один INF-файл для установки во всех версиях операционной системы Windows. Дополнительные сведения см. в разделе Создание INF-файлов для нескольких платформ и операционных систем. Если ваше устройство будет продаваться на международном рынке, вам следует создать международный INF-файл. В зависимости от региона, международный файл INF может быть файлом Unicode (UTF-16), а не ASCII.
Хорошим способом создания INF-файла для вашего драйвера является изменение одного из примеров, предоставляемых WDK.Большинство образцов драйверов WDK содержат INF-файлы в том же каталоге, что и образец драйвера.
Дополнительную информацию о файлах INF см. в разделе Создание файла INF, документации по InfVerif, документации по конкретному устройству в WDK и файлах INF, поставляемых с образцами драйверов для устройств, подобных вашему.
Файл каталога
Файл каталога драйверов содержит криптографический хэш каждого файла в пакете драйвера. Windows использует эти хэши для проверки того, что пакет не был изменен после публикации. Чтобы гарантировать, что файл каталога не будет изменен, он должен быть снабжен цифровой подписью, которой будут доверять системы, использующие этот пакет драйверов.
Поставщик получает цифровые подписи выпуска, отправляя свой пакет драйверов в Лабораторию качества оборудования Windows (WHQL) для тестирования и подписания. WHQL возвращает пакет с файлом каталога (файл .cat). Дополнительные сведения см. в разделе Подписи выпусков WHQL.
Файл INF должен ссылаться на файл каталога с помощью директивы CatalogFile в разделе Версия INF файла INF.
Файлы драйверов
В большинстве случаев пакет драйвера будет содержать одну или несколько служб драйвера, которые должны быть частью стека устройства для устройства, на котором установлен пакет драйвера. Дополнительные сведения о службах драйверов см. в разделе Выбор модели драйвера. Служба драйвера — это часть пакета, предоставляющая интерфейс ввода-вывода для устройства. Обычно драйвер представляет собой библиотеку динамической компоновки (DLL) с расширением имени файла .sys. Допускаются длинные имена файлов, за исключением драйверов начальной загрузки.
Программное обеспечение, необходимое для поддержки конкретного устройства, зависит от характеристик устройства и шины или порта, к которому оно подключено. Microsoft поставляет драйверы для многих распространенных устройств. Если ваше устройство может обслуживаться одним из этих драйверов, возможно, вам придется написать только мини-драйвер для конкретного устройства. Минидрайвер обрабатывает специфические функции устройства от имени системного драйвера. Для некоторых типов устройств даже минидрайвер не нужен. Например, модемы обычно поддерживаются только установочными файлами.
Другие файлы
Пакет драйвера также может содержать другие файлы, например параметры калибровки оборудования, службу Win32, значок устройства или файл библиотеки драйверов (например, для видеодрайверов). Дополнительные сведения см. в следующем разделе:
Когда устройство подключено, Windows необходимо найти соответствующий пакет драйверов для установки.
В Windows 10 этот процесс сопоставления выполняется в два этапа. Во-первых, Windows 10 устанавливает наиболее подходящий пакет драйверов в хранилище драйверов, что позволяет устройству быстро начать работу. После установки этого пакета драйверов Windows 10 также:
- Загружает все подходящие пакеты драйверов из Центра обновления Windows, которые лучше подходят для устройства, чем те, которые в настоящее время находятся в системе, и помещает их в хранилище драйверов.
- Выполняет поиск пакетов драйверов, которые были предварительно загружены в места, указанные параметром реестра DevicePath. Значение реестра DevicePath находится в следующем подразделе: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion. По умолчанию значение DevicePath указывает каталог %SystemRoot%\INF.
Если Windows 10 находит в этих местах более подходящий пакет драйвера, чем тот, который был установлен изначально, Windows заменяет пакет драйвера, установленный из хранилища драйверов, на более подходящий.
В версиях Windows до Windows 8 процесс сопоставления пакетов драйверов выполняется только в DevicePath, если он указан, а в противном случае по умолчанию используется Центр обновления Windows.
В следующей таблице представлен краткий обзор приведенной выше информации:
Этап поиска | Порядок поиска Windows 7 | Порядок поиска Windows 8, Windows 10 |
---|---|---|
Первоначальная установка пакета драйверов | DevicePath; Центр обновления Windows; Хранилище драйверов | Хранилище драйверов |
После установки исходного пакета драйверов | Неприменимо | DevicePath; Центр обновления Windows |
В Windows 10 версии 1709 и выше Центр обновления Windows (WU) предлагает наиболее подходящий пакет драйверов, который не обязательно является самым последним. В процессе выбора пакета драйвера WU учитываются идентификатор оборудования, дата/версия и критическая/автоматическая/необязательная категория. WU отдает наивысший приоритет критическим или автоматическим пакетам драйверов. Если соответствующий критический/автоматический пакет драйверов не найден, WU ищет дополнительные пакеты драйверов. В результате более старый критически важный пакет драйверов, имеющий в остальном такое же значение, имеет приоритет над более новым дополнительным пакетом драйверов.
Начиная с Windows 10 версии 2004, Центр обновления Windows (WU) автоматически предлагает только лучший пакет драйверов для автоматического/критического соответствия, выполняя поиск как на компьютере, так и на WU.Чтобы просмотреть соответствующие пакеты драйверов в дополнительной категории, выберите «Настройки» > «Обновление и безопасность» > «Центр обновления Windows» > «Просмотр дополнительных обновлений» > «Обновления драйверов». WU по-прежнему использует те же критерии для ранжирования и выбора водителя.
Windows представляет пакет драйвера как узел драйвера, который включает в себя всю поддержку программного обеспечения для устройства, например любые файлы, службы и записи реестра. Службы для устройства включают функциональный драйвер и любые драйверы фильтров устройств верхнего и нижнего уровня.
Для некоторых устройств требуется поставляемый поставщиком пакет драйверов, разработанный специально для этого устройства или предназначенный для поддержки семейства устройств. Однако другие устройства могут управляться системным пакетом драйверов, который поддерживает семейство устройств или все устройства данного класса установки устройств. Windows выбирает пакет драйверов, наиболее точно соответствующий устройству. Если Windows не находит такой пакет драйверов, она выбирает из все более общих пакетов драйверов.
Как Windows ищет пакеты драйверов
Windows ищет в определенных местах пакеты драйверов, соответствующие устройству. Пакет драйверов соответствует устройству, если выполняются следующие условия:
Один из аппаратных идентификаторов (ID) или совместимых идентификаторов, сообщаемый драйвером шины для устройства, совпадает со строкой hw-id или совместимый-id в строке Запись раздела INF Models файла INF пакета драйвера.
Оформление TargetOSVersion в разделе Models INF, содержащем соответствующую запись, относится к версии операционной системы, на которой должно быть установлено устройство.
Дополнительную информацию о том, где Windows ищет подходящие драйверы, см. в разделе Где Windows ищет драйверы.
Как Windows ранжирует пакеты драйверов
Windows создает список всех совпадений в каждом применимом пакете драйверов и присваивает каждому совпадению ранг. Один пакет драйвера может содержать несколько совпадений для устройства, если пакет драйвера имеет несколько строк в записях раздела INF Models, которые совпадают на устройстве. Windows представляет ранг соответствия каждого пакета драйверов целочисленному значению, которое больше или равно нулю.
Дополнительную информацию о процессе ранжирования см. в разделе Как Windows ранжирует пакеты драйверов.
Начиная с Windows Vista, Windows также ранжирует пакеты драйверов в зависимости от того, имеет ли пакет драйверов цифровую подпись. Windows ранжирует пакеты драйверов на основе цифровой подписи следующим образом:
Если групповая политика AllSignersEqual отключена, Windows оценивает пакеты драйверов, подписанных подписью Microsoft, выше, чем пакеты драйверов, подписанные подписью Authenticode. Это ранжирование происходит, даже если пакет драйвера, подписанный подписью Authenticode, во всех других аспектах лучше подходит для устройства.
Если включена групповая политика AllSignersEqual, Windows одинаково ранжирует все пакеты драйверов с цифровой подписью.
Примечание. Начиная с Windows 7 групповая политика AllSignersEqual включена по умолчанию. В Windows Vista и Windows Server 2008 групповая политика AllSignersEqual отключена по умолчанию. ИТ-отделы могут переопределить поведение ранжирования по умолчанию, включив или отключив групповую политику AllSignersEqual.
Подписи от центра подписи Windows включают следующее:
Подписи Premium Windows Hardware Quality Labs (WHQL) и стандартные подписи WHQL
Подписи для входящих пакетов драйверов
Подписи Windows Sustained Engineering (Windows SE)
Подпись WHQL для версии Windows, которая является такой же или более поздней, чем значение LowerLogoVersion класса установки устройства пакета драйвера
Как Windows выбирает пакеты драйверов
Windows выбирает соответствие пакета драйверов с наименьшим значением ранга как наиболее подходящее для устройства.
Однако, если имеется несколько совпадений пакетов драйверов с одинаковым рейтингом, которые лучше всего подходят для устройства, Windows использует дату и версию пакета драйверов для выбора драйвера. Дата и версия драйвера указываются в директиве INF DriverVer, содержащейся в INF-файле пакета драйвера.
Windows использует следующие критерии для выбора пакета драйверов, соответствующего устройству:
Windows выбирает соответствие пакета драйверов с наименьшим значением ранга как наиболее подходящее для устройства.
Для совпадений пакетов драйверов с одинаковым рангом Windows выбирает пакет драйверов с самой последней датой.
Для пакетов драйверов с одинаковым рангом и датой Windows выбирает пакет драйвера с самой высокой версией.
Для пакетов драйверов с одинаковым рангом, датой и версией Windows может выбрать любой пакет драйверов.
Читайте также: