Протокол передачи мультимедиа

Протокол передачи мультимедиа (MTP) позволяет передавать файлы на Windows 10 IoT Базовая устройство и с устройства через USB. Он обеспечивает доступ к внутреннему хранилищу устройства и карта SD, если таковой имеется.

Эта функция входит в состав основных наборов IoT, которые можно скачать и установить из Windows 10 IoT Базовая Пакетов.

Установка компонента MTP на устройстве под управлением Windows 10 IoT Базовая

Подготовка устройства с необходимыми пакетами

  1. Запустите PowerShell или SSH и получите доступ к устройству, на котором выполняется Windows 10 IoT Базовая.
  2. В PowerShell или SSH выполните следующие действия.
    1. Создайте временную папку на целевом компьютере (например, C:\MTPTemp).
    2. В зависимости от архитектуры устройства скопируйте следующие пакеты с компьютера (C:\Program Files (x86)\Windows Kits\10\MSPackages\Retail\<arch>\fre) в C:\MTPTemp:
      • Microsoft-OneCoreUAP-Mtp-UserService-Package.cab
      • Microsoft-OneCoreUAP-Mtp-UserService-Package_Lang_en-US.cab
      • Microsoft-WindowsStorSvc-API-Schema-Extension-Package.cab
      • Microsoft-WindowsStorSvc-API-Schema-Extension-Package_Lang_en-US.cab
    3. Выполните следующие команды из C:\MTPTemp , чтобы установить пакеты в образ системы устройства Интернета вещей:
      • ApplyUpdate.exe -stage Microsoft-OneCoreUAP-Mtp-UserService-Package.cab
      • ApplyUpdate.exe -stage Microsoft-OneCoreUAP-Mtp-UserService-Package_Lang_en-US.cab
      • ApplyUpdate.exe -stage Microsoft-WindowsStorSvc-API-Schema-Extension-Package.cab
      • ApplyUpdate.exe -stage Microsoft-WindowsStorSvc-API-Schema-Extension-Package_Lang_en-US.cab
      • ApplyUpdate.exe -commit
  3. Устройство загрузится в ОС обновления, установит компонент MTP и перезагрузится в MainOS.

Включение USB-интерфейса MTP

После того как устройство вернется к MainOS, конфигурацию USBFN по-прежнему необходимо обновить, чтобы включить MTP. Для этого необходимо добавить MTP в интерфейсы, перечисленные в USBFN. Сведения о конфигурации USB описаны в статье о параметрах реестра USB .

Хотя вы можете изменить конфигурацию USBFN по умолчанию, доступную в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\Default ключе, рекомендуется определить собственную, так как они не будут перезаписаны обновлениями системы.

Создание конфигурации USBFN с помощью интерфейса MTP

Чтобы добавить новую конфигурацию с помощью MTP, выполните следующие действия.

  1. Добавьте новый ключ в .HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations Например, HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\MyConfiguration.
  2. В новом ключе создайте значениеInterfaceList, равное .MTPREG_MULTI_SZ
  3. Под тем же ключом REG_BINARY создайте значение MSOSCompatIdDescriptor , равное 2800000000010400010000000000000000014D545000000000000000000000000000000000000000.
  4. В разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN добавьте новое REG_SZ значение CurrentConfiguration , равное имени только что созданного ключа. В данном случае это число MyConfiguration.
  5. [Необязательно] В разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN добавьте новое REG_DWORD значение IncludeDefaultCfg , равное 1. Это позволит USB-драйверу перечислить интерфейсы по умолчанию вместе с MTP.

Примечание

Если вы уже используете настраиваемую конфигурацию, ее придется изменить, а не создавать новую.

Добавление интерфейса MTP в существующую конфигурацию

Выполните следующие действия, чтобы добавить MTP в существующую конфигурацию USBFN:

  1. Найдите текущую конфигурацию, проверив значение в CurrentConfiguration разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN. Если значение присутствует, текущую конфигурацию можно найти в разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\[CurrentConfiguration]. В противном случае он находится в разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\Default.
  2. В текущем ключе конфигурации добавьте \0MTP к значению InterfaceList. Часть \0 используется в качестве типа InterfaceList и REG_MULTI_SZ требует этого разделителя между значениями.
  3. Измените значение, MSOSCompatIdDescriptor включив дескриптор MTP. Чтобы создать допустимый дескриптор, содержащий все интерфейсы, которые в настоящее время находятся под значением InterfaceList , следуйте инструкциям в документации, доступной в нижней части этой страницы. OS_Desc_CompatID.doc приводит описание формата дескриптора и пример включения нескольких интерфейсов в дескриптор. Совместимые и субсовместимые идентификаторы MTP также доступны на той же странице и используются в одном из примеров.

Включение MTP в настраиваемый FFU

  1. Добавьте идентификатор компонента IOT_MTP в входной файл OEM. Это эквивалентно выполнению действий из раздела "Подготовка устройства с необходимыми пакетами".
  2. Обязательно примените те же изменения реестра, которые упоминались в разделе "Создание новой конфигурации USBFN с помощью интерфейса MTP". Следуйте этим инструкциям , чтобы узнать, как применить изменения реестра к FFU.
  3. Создайте образ\FFU. Инструкции см. в этой статье .

Предупреждение

Изменение конфигурации по умолчанию не должно выполняться с помощью настройки FFU. Системные записи могут быть обновлены или изменены обновлением системы, и все пользовательские параметры будут потеряны.

Настройка фильтра карта MTP SD

По умолчанию MTP перечисляет все содержимое SD-карта, если оно присутствует на устройстве. Однако это перечисление можно ограничить определенной вложенной папкой. Для этого необходимо добавить значение MTPSDFolderFilter реестра в раздел HKEY_LOCAL_MACHINE\Software\Microsoft\MTPреестра . Значение имеет тип REG_SZ и должно содержать относительный путь к папке, для перечисления в MTP. Папка будет создана автоматически, если она еще не существует.

Примеры путей:

  • \FirstLevelDirectory;
  • FirstLevelDirectory;
  • \FirstLevelDirectory\SecondLevelDirectory;
  • Never\Before\Created\Directory.

Предупреждение

Не используйте абсолютный путь, содержащий букву диска, например C:\Some\Folder\Path . Это может помешать перечислению карта SD.

Дополнительные сведения о настройке образа с помощью определенных записей реестра см. по этой ссылке .