Работа с infs расширения в Центре партнеров

Вы можете создавать метки доставки для INF-файлов расширений в Центре разработки оборудования для Windows, позволяя предоставлять к ним общий доступ и публиковать их, как и другие отправки. В этом разделе описывается процесс упаковки, отправки и публикации этих пакетов. Дополнительные сведения о создании и установке infs расширений см. в разделе Использование INF-файла расширения.

Требования к публикации infs расширения в клиентский компонент Центра обновления Windows

Для публикации расширений INFs в Центре обновления Windows необходимо установить флажки автоматического повышения уровня драйверов на этикетке доставки. Причина, по которой inFs расширения не могут быть опубликованы как необязательные, заключается в том, что они не перечислены в диспетчер устройств, чтобы пользователь инициировал действие "Обновить драйвер". Чтобы увидеть эти флажки, необходимо сначала зарегистрироваться для пилотирования.

Примечание

Чтобы клиентский компонент Центра обновления Windows предлагать infs расширения, во всех системах должно быть по крайней мере обновление RS3 за январь 2018 г. (10.0.16299.192).

Отправка и публикация infs расширений

В этом разделе описывается отправка и публикация пакета INF. Сведения о распространенных ошибках и часто задаваемых вопросах см. в статьях с выделенными элементами и часто задаваемыми вопросами.

Важно!

Корпорация Майкрософт рекомендует всегда создавать отдельную отправку для каждого infs расширения и отдельную отправку, содержащую только базовую отправку драйвера. Публикация базового драйвера и infs расширения в одной отправке приведет к следующим проблемам:

  • Все этикетки для доставки будут классифицированы и оценены Центром партнеров как "Драйверы расширения". Чтобы найти элементы, которые являются расширениями, введите @IsExtensionDriver:"True" в поле поиска Центра разработки.
  • После публикации в клиентский компонент Центра обновления Windows пользователи могут быть вынуждены скачивать пакеты драйверов несколько раз: один раз при установке базового драйвера и снова для каждого применимого расширения, обнаруженного PnP.

Создание пакета отправки

Базовый пакет драйвера

  1. Запустите тестовый запуск HLK с базовым драйвером и расширением INF(ы) в обычном режиме. Результаты HLK будут использоваться для всех приведенных ниже шагов по созданию пакета.

    Изображение, показывающее файлы, выходные при тестовом запуске HLK.

  2. Удалите элементы шаблона Расширения INF из папки Drivers и добавьте в пакет HLK только базовые файлы драйверов, как показано ниже.

    Изображение, показывающее базовые файлы драйверов.

  3. Создайте и подпишите этот пакет HLKx, чтобы создать базовый пакет драйверов.

    Примечание

    Базовые пакеты драйверов всегда должны быть обратно совместимы с существующими расширениями.

Пакет INF расширения

  1. Используя те же результаты HLK, что и выше, выберите PackageReplace Driver (Заменитьпакет).>

    изображение, показывающее параметр

  2. Добавьте расширение INF в папку драйвера со любыми двоичными файлами, на которые ссылается ссылка. Если у вас есть несколько infs расширения, добавьте только один файл.

  3. Создайте и подпишите этот новый пакет HLK. Это будет пакет INF расширения.

  4. Повторите эту процедуру для каждого infs расширения, каждый раз удаляя содержимое папки драйвера.

Отправка пакетов в Центр партнеров

Создайте новую отправку для каждого из пакетов, созданных выше, и отправьте их в Центр разработки оборудования. Затем создайте транспортную этикетку для тех, к которым вы хотите предоставить общий доступ или опубликовать. Дополнительные сведения см. в разделах Создание новой отправки оборудования и Управление распределением драйверов с помощью меток доставки .

ExtensionID

ExtensionID — это создаваемый идентификатор GUID, который используется для идентификации происхождения драйвера и управления версиями. Он описывает часть оборудования или серию частей устройства и автоматически регистрируется в SellerID, отправившем его. Владелец этого SellerID отвечает за отслеживание использования ExtensionID и сопоставления аналогично управлению CHID.

Например, при создании ExtensionID для новой системной части:

  • Владение ExtensionID будет назначено вашему SellerID.
  • Каждый системный проект из вашей организации, использующий часть или серию частей, будет использовать один и тот же идентификатор ExtensionID.
  • ExtensionID останется неизменным на протяжении всего времени существования части.

Примечание

  • Если вы используете ExtensionID, не связанный с SellerID, Центр партнеров отклонит вашу отправку и сообщит, что ExtensionID уже принадлежит другой организации:
  • Для данного устройства для каждого уникального значения ExtensionID устанавливается только одно расширение INF. Таким образом, если на устройстве есть несколько infs расширения, потребуется новый Идентификатор расширения для каждого из них. Это также означает, что если два infs расширения предназначены для одного и того же устройства с разными идентификаторами ExtensionID, будут применены оба расширения INFs. Дополнительные сведения см. в разделе Использование INF-файла расширения .

Если ваша организация управляет проектами и отправками для другой организации, обратите внимание на следующее:

  • Владение ExtensionID назначается sellerID, который завершает отправку.
  • Использование SellerID другой организации позволяет использовать их ExtensionID.
  • Чтобы использовать SellerID вашей организации, необходимо создать собственный Идентификатор расширения для части или серии частей.

Необходимо создать новый Идентификатор расширения для начальной версии INF расширения (т. е. при первой настройке и отправке INF расширения). Это относится к первому получению новой общей этикетки доставки для нового устройства. Visual Studio включает служебные программы создания GUID в разделе Инструменты > Создание GUID, хотя любое интерактивное средство создания GUID должно работать, если оно соответствует формату реестра, как показано ниже.

Изображение, показывающее экран создания GUID в Visual Studio.

Если вы обновляете уже опубликованный inf-файл расширения, сохраните значение ExtensionID и увеличьте версию и (или) дату, указанную в директиве DriverVer. Дата и версия драйвера используются (в этом порядке) для различения нескольких inFs расширения с одинаковым ExtensionID.

Публикация расширения INF

Чтобы опубликовать отправку INF расширения, выполните действия, описанные в статье Публикация драйвера для клиентский компонент Центра обновления Windows. Убедитесь, что установлены оба параметра автоматического повышения уровня драйверов и что infs расширения имеют определенную целевую ориентацию.

Изображение, показывающее автоматическое повышение уровня драйверов.

Если вы не видите эти варианты повышения уровня драйверов, может потребоваться зарегистрироваться для пилотирования.

Все infs расширения проходят процесс тестирования драйвера, который будет распространяться через клиентский компонент Центра обновления Windows. После успешного выполнения эти файлы будут доступны розничным системам. Присоединение к программе предварительной оценки Windows даст вам более быстрый доступ к драйверам на этом этапе.

Различия в ранжировании и нацеливание на inf расширения

Так как расширения являются настройками для конкретных устройств, они всегда должны быть специально ориентированы. При работе с нацеливанием на расширение INF следуйте приведенным ниже рекомендациям.

  • INF-файлы расширений должны иметь 4-х составные аппаратные идентификаторы (HWID), если это возможно.
  • Помимо наличия 4-х частей HWID, chiDs также могут быть добавлены в этикетку доставки расширения INF.
  • Для частей и серий деталей, у которых нет 4-частей HWID, на этикетке доставки требуется нацеливание chid.

Эти сведения о целевых объектах крайне важны для точной оценки inf расширения во время распространения через клиентский компонент Центра обновления Windows (WU). Существует два этапа, на которых WU оценивает драйверы:

  1. Этап применимости, когда WU создает список драйверов, которые применяются к определенной системе.
  2. Этап ранжирования, на котором Windows PnP и WU определяют драйвер из списка для установки.

В целом, существует несколько ключевых принципов в отношении ранжирования и таргетинга для inFs расширений:

  • Идентификатор Extension INF не используется для применимости — только для идентификации происхождения и управления версиями.

  • Wu предложит (и PnP установит) драйвер расширения с наивысшим рейтингом для каждого применимого идентификатора расширения.

  • Драйверы расширений ранжируются ТОЛЬКО по дате & версии, включенной в директиву DriverVer. Он используется как wu, так и PnP. Дополнительные сведения см. в разделе "Версия INF" и директиве INF DriverVer .

  • Обратите внимание, что PnP и WU не учитывают оценку функций или идентификаторов (т. е. 2 части и 4 части) в отношении драйверов расширений.

  • Сведения о CHID не используются при ранжировании драйверов расширений в WU (т. е. вы не можете "заблокировать" другие драйверы расширений с помощью нацеливания CHID).

  • Сведения о выборе драйвера и нацеливание в операционной системе Windows см. в разделе Использование INF-файла расширения.

Вопросы и ответы

Разработка драйверов

Нужно ли изменять ExtensionID при каждом обновлении базового драйвера?

Нет, следует сохранить тот же идентификатор расширения при обновлении базового драйвера. ExtensionID используется для сравнения версий и идентификации происхождения драйвера. Он не должен изменяться в пределах происхождения драйвера.

Производство

Можем ли мы использовать IHV-предоставленный IHV INF с их ExtensionID для производственных целей?

Нет. Если вы планируете владеть аспектом обслуживания расширения, то во время производства необходимо использовать собственные INF и ExtensionID расширения.

Обновления драйверов

Нужно ли публиковать обновленный inf-файл расширения для клиентский компонент Центра обновления Windows при каждом обновлении и публикации базового пакета драйверов?

Нет, и вы не должны. Базовый пакет драйверов всегда должен быть обратно совместим с существующими расширениями.

Что происходит, когда обновленный базовый драйвер публикуется и применяется к системе конечного пользователя?

При применении базового обновления драйвера будет оцениваться и при необходимости применяться установленный inf-файл расширения. Если inFs расширения не установлены, клиентский компонент Центра обновления Windows скачит последнюю применимую версию.

Нужно ли публиковать обновленный inf-файл расширения или идентификатор расширения при обновлении ос до последней версии?

Нет, существующие ExtensionID и Extension INF продолжат работать.

Могут ли две системы совместно использовать одно и то же расширение INF, если их настройки одинаковы?

Да. Если несколько систем используют одни и те же параметры или вы хотите настроить параметры на более широком наборе устройств, достаточно одного расширения INF. Для этого необходимо добавить применимые 4-х составные идентификаторы оборудования в inf-файл расширения. Дополнительные сведения см. в разделе Использование INF-файла расширения.

Центр разработки оборудования

Драйверы Windows