Чтобы установить пакеты метаданных из пакета драйвера, в вашем INF-файле должно быть задано копирование пакетов метаданных. Дополнительные сведения об INF-файлах см. в разделе "INF-файлы" в комплекте разработки драйверов для Windows.
Примечание. Если пакет драйвера используется для установки устройств в версиях Windows, выпущенных ранее Windows 7, вы должны создать отдельный раздел INF DDInstall, содержащий директивы INF, относящиеся к вашим метаданным. Вам нужно указать имя этого раздела в разделе INF Models, используя формат TargetOSversion с указанием значений OSMajorVersion и OSMinorVersion для Windows 7. Если вы не используете отдельный раздел DDInstall для Windows 7, то при установке пакета драйвера появится предупреждение о подписи, так как COPYFLG_NODECOMP не работает с версиями Windows, выпущенными ранее Windows 7. Дополнительные сведения о создании форматированных разделов INF см. в разделе "Создание INF-файлов для нескольких платформ и операционных систем" в комплекте разработки драйверов для Windows.
В следующем примере показано, как разделы DestinationDirs и DDInstall определяют пути для операций с пакетами метаданных.
[SourceDisksNames]
1 = %Media_Description%,,,\MetadataPackage ;
[SourceDisksFiles. NTx86]
GUID1.devicemetadata-ms= 1,, ;A metadata package file for EN-US
GUID2.devicemetadata-ms= 1,, ;A metadata package file for AR-SA
GUID3.devicemetadata-ms= 1,, ;A metadata package file for JA-JP
[DestinationDirs]
COPYMETADATA_EN-US = 24, \ProgramData\Microsoft\Windows\DeviceMetadataStore\EN-US ;
COPYMETADATA_AR-SA = 24, \ProgramData\Microsoft\Windows\DeviceMetadataStore\AR-SA ;
COPYMETADATA_JA-JP = 24, \ProgramData\Microsoft\Windows\DeviceMetadataStore\JA-JP ;
. . .
[DeviceInstall. NTx86]
CopyFiles=COPYMETADATA_EN-US
CopyFiles=COPYMETADATA_AR-SA
CopyFiles=COPYMETADATA_JA-JP
[COPYMETADATA_EN-US]
GUID1.devicemetadata-ms,,,0x00000800 ;COPYFLG_NODECOMP
[COPYMETADATA_AR-SA]
GUID2.devicemetadata-ms,,,0x00000800 ;COPYFLG_NODECOMP
[COPYMETADATA_JA-JP]
GUID3.devicemetadata-ms,,,0x00000800 ;COPYFLG_NODECOMP
Замечания.
· Вам нужно скопировать все пакеты метаданных в пакете драйвера в соответствующую папку локального хранилища метаданных устройств, чтобы обеспечить поддержку динамического изменения языкового стандарта.
· Пакеты метаданных не должны копироваться с помощью дополнительного установщика или установщика классов.
· Далее следует указать флаг COPYFLG_NODECOMP в директиве CopyFIles. Этот флаг гарантирует целостность двоичных данных пакета метаданных устройства и предотвращает распаковку этого пакета при установке пакета драйвера.
· Вам нужно подписать пакет метаданных, если он включен в пакет драйвера, который будет подписан.
· Любой сбой при установке пакета метаданных вызывает сбой установки драйвера.
Применение пакета метаданных устройства в системе для тестирования
Пакет метаданных устройства устанавливается автоматически при установке устройства в системе пользователя. Однако нужно нажать клавишу F5, открыв папку "Устройства и принтеры", при копировании пакета метаданных устройства после его установки в локальное хранилище метаданных для тестирования. В этом случае выполните следующие действия.
1. Перейдите в меню "Пуск".
2. Введите "Устройства и принтеры".
3. Щелкните "Параметры" на панели поиска.
4. Щелкните "Устройства и принтеры".
5. Нажмите клавишу F5.
Примечание. Если вы используете средство создания метаданных устройства или средство развертывания драйверов WDK, нажимать клавишу F5 не нужно, так как эти инструменты автоматически обновляют базу метаданных устройства.
Подпись пакета метаданных устройства и тестовый режим
Для приложений Магазина Windows для устройств, специализированных приложений для устройств, компонента Device Stage и автозапуска для устройств пакет метаданных устройства должен иметь подпись (пользователи получат пакет метаданных устройства из WMIS), либо система должна находиться в тестовом режиме (для тестирования). Собираясь провести тестирование пакета метаданных устройства перед его отправкой в Майкрософт, переведите систему в тестовый режим. Чтобы перевести компьютер в тестовый режим, выполните следующие действия.
1. Откройте командную строку с повышенными правами доступа.
2. Выполните команду bcdedit - set testsigning on.
3. Перезагрузите систему.
Когда компьютер перейдет в тестовый режим, на рабочем столе появится надпись Тестовый режим.
Как клиент DMRC выбирает пакет метаданных устройства
Когда пользователь открывает окно "Устройства и принтеры" или пользовательский интерфейс Device Stage™, операционная система запускает клиент получения метаданных устройства (DMRC) для поиска в его кэше наиболее подходящего и актуального пакета метаданных для устройства. Кроме того, клиент DMRC ищет более новый пакет метаданных для устройства на сервере WMIS. Если DMRC находит нужный пакет, он загружает его и устанавливает на компьютере.
Если клиент DMRC недавно запрашивал на сервере WMIS пакет метаданных устройства, он не ищет новый пакет, а использует тот пакет, который уже имеется в кэше. Дополнительные сведения см. в разделе Порядок определения клиентом DMRC необходимости поиска на сервере WMIS далее в этом документе.
Клиент DMRC использует следующие XML-элементы метаданных, указанные в пакетах метаданных, для выбора подходящего пакета для устройства. Порядок этих XML-элементов соответствует приоритету, с которым клиент DMRC выбирает пакет метаданных.
1. ModelID и ModelIDList
2. HardwareID и HardwareIDList
3. Locale
4. LastModifiedDate
Когда клиент DMRC выбирает пакет метаданных для устройства, он выполняет следующие действия.
1. Если устройство имеет идентификатор модели, клиент DMRC ищет пакеты метаданных устройства, для которых одна запись ModelID в XML-элементе ModelIDList пакета совпадает со значением идентификатора модели устройства.
2. Если устройство не имеет идентификатора модели, клиент DMRC ищет пакеты метаданных устройства, для которых записи HardwareID в XML-элементе HardwareIDList пакета совпадают с аппаратными идентификаторами устройств.
3. Клиент DMRC создает список пакетов метаданных устройства, удовлетворяющих условиям поиска, описанным на этапах 1 и 2. Затем в этом списке DMRC ищет записи, для которых значение XML-элемента Locale пакета совпадает со значениями в списке предпочтительных языковых стандартов на компьютере.
Если ни одна из записей этого списка не удовлетворяет данному условию, клиент DMRC ищет среди записей списка пакет метаданных устройства, содержащий XML-элемент Locale, у которого для атрибута default задано значение true. Если такая запись находится, DMRC выбирает этот пакет метаданных.
В Windows 8, если выполняется условие флага многоязыковой поддержки, этот пакет метаданных устройства имеет наивысший ранг при поиске соответствий языковых стандартов.
4. Если DMRC находит несколько пакетов метаданных устройства на шаге 3, он выбирает пакет с XML-элементом LastModifiedDate, имеющим наиболее позднюю метку времени.
Дополнительные сведения об XML-схеме метаданных устройства и ее элементах см. в разделе Создание пакета метаданных устройства для компонента "Устройства и принтеры" в разделе оборудования на сайте Центра разработки для Windows.
На рис. 1 показано, как клиент DMRC выбирает пакеты метаданных устройства.

Рисунок 1. Как клиент DMRC выбирает пакет метаданных
Замечания.
· Если клиент DMRC выбирает пакет метаданных по идентификатору оборудования, он использует такое же ранжирование идентификаторов оборудования, которое применяется в операционной системе во время установки драйвера. Клиент DMRC устанавливает ранг для идентификатора специального оборудования на более высоком уровне, чем для идентификатора обычного оборудования. В приведенном ниже примере идентификаторы оборудования следуют в порядке ранжирования.
<HardwareID>DOID:USB\VID_XXXX&PID_YYYY&REV_0000</HardwareID>
<HardwareID>DOID:USB\VID_XXXX&PID_YYYY</HardwareID>
Сведения об идентификаторах оборудования, содержащихся в контейнере устройства, см. в разделе "Создание пакетов метаданных устройств для компонента "Устройства и принтеры"" в разделе оборудования на сайте Центра разработки для Windows.
· Только для одного пакета метаданных устройства следует задать атрибут default XML-элемента Locale со значением true. Задать для этого атрибута значение true нужно в том пакете, который содержит идентификатор оборудования с наивысшим рангом.
· XML-элемент LastModifiedDate используется для управления версиями и выбора самой новой версии пакета метаданных устройства.
· Если два и более пакета метаданных устройства в локальном хранилище метаданных содержат одинаковые значения XML-элементов ModelIDList, HardwareIDList, Locale или LastModifiedDate, клиент DMRC выбирает для устройства только один из них. Обратите внимание, что DMRC выбирает один из этих пакетов случайным образом.
Порядок определения клиентом DMRC необходимости поиска на сервере WMIS
Чтобы уменьшить нагрузку на локальную сеть пользователя, клиент DMRC создает кэш для пакетов метаданных устройств. Когда пользователь открывает компонент "Устройства и принтеры", при автозапуске запускается Device Stage или в Windows 8 инициируется задача периодического обслуживания, клиент DMRC выполняет следующие действия, чтобы определить необходимость поиска более нового пакета метаданных на сервере WMIS.
1. Если идентификатора целевого устройства нет в индексной таблице DMRC, клиент DMRC выполняет первоначальный поиск пакета метаданных устройства. Таким образом, DMRC отправляет запрос на сервер WMIS.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


