Compartilhar via


Protocolo de transferência de mídia

O PROTOCOLO MTP permite que você transfira arquivos de e para seu dispositivo Windows 10 IoT Core por meio de USB. Ele permite o acesso ao armazenamento interno do dispositivo e ao SD cartão, se presente.

O recurso faz parte dos Kits do IoT Core, que podem ser baixados e instalados do Windows 10 IoT Core Packages.

Como instalar o recurso MTP em um dispositivo que executa Windows 10 IoT Core

Provisionando o dispositivo com pacotes necessários

  1. Inicie o PowerShell ou o SSH e acesse o dispositivo executando Windows 10 IoT Core.
  2. No PowerShell ou no SSH, faça o seguinte:
    1. Crie uma pasta temporária no computador de destino (por exemplo, C:\MTPTemp).
    2. Com base na arquitetura do dispositivo, copie os seguintes pacotes do computador (C:\Program Files (x86)\Windows Kits\10\MSPackages\Retail\<arch>\fre) para 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. Execute estes comandos de C:\MTPTemp para instalar os pacotes na imagem do sistema do dispositivo IoT:
      • 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. O dispositivo será inicializado no sistema operacional update, instalará o recurso MTP e reiniciará para o MainOS.

Habilitando a interface USB MTP

Depois que o dispositivo voltar para o MainOS, a configuração do USBFN ainda precisará ser atualizada para incluir o MTP. Para fazer isso, você precisará adicionar MTP às interfaces enumeradas pela USBFN. O artigo Configurações do registro USB explica os detalhes da configuração do USB.

Embora você possa modificar a configuração padrão do USBFN disponível na HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\Default chave, é recomendável definir a sua própria, pois elas não serão substituídas por atualizações do sistema.

Criando uma nova configuração de USBFN com a interface MTP

Siga estas etapas para adicionar uma nova configuração com MTP:

  1. Adicione uma nova chave em HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations. Exemplo: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\MyConfiguration.
  2. Na nova chave, crie um REG_MULTI_SZ valor InterfaceList igual a MTP.
  3. Na mesma chave, crie um REG_BINARY valor MSOSCompatIdDescriptor igual a 2800000000010400010000000000000000014D545000000000000000000000000000000000000000.
  4. Em HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN , adicione um novo REG_SZ valor CurrentConfiguration igual ao nome da chave recém-criada. Nesse caso, ele seria MyConfiguration.
  5. [Opcional] Em HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN , adicione um novo REG_DWORD valor IncludeDefaultCfg igual a 1. Isso fará com que o driver USB enumere as interfaces padrão junto com o MTP.

Observação

Se você já estiver usando uma configuração personalizada, precisará modificá-la em vez de criar uma nova.

Adicionando a interface MTP a uma configuração existente

Siga estas etapas para adicionar o MTP a uma configuração usbfn existente:

  1. Localize a configuração atual verificando o CurrentConfiguration valor em HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN. Se o valor estiver presente, a configuração atual poderá ser encontrada em HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\[CurrentConfiguration]. Caso contrário, ele estará em HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\Default.
  2. Na chave de configuração atual, adicione \0MTP ao valor de InterfaceList. A parte \0 é usada como o tipo de InterfaceList é REG_MULTI_SZ e requer esse separador entre valores.
  3. Modifique o MSOSCompatIdDescriptor valor para incluir o descritor do MTP. Para criar um descritor válido que contém todas as interfaces atualmente sob o InterfaceList valor , siga a documentação de instruções disponível na parte inferior desta página. OS_Desc_CompatID.doc fornece uma explicação do formato do descritor e um exemplo de como incluir várias interfaces no descritor. As IDs compatíveis e subcompatíveis do MTP também estão disponíveis na mesma página e são usadas em um dos exemplos.

Como incluir MTP em sua FFU personalizada

  1. Adicione IOT_MTP ID do recurso ao arquivo de entrada OEM. Isso é equivalente a seguir as etapas da seção "Provisionamento do dispositivo com pacotes necessários".
  2. Aplique as mesmas alterações do Registro mencionadas na seção "Criando uma nova configuração de USBFN com a interface MTP". Siga estas instruções para saber como aplicar alterações de registro a uma FFU.
  3. Crie a imagem\FFU. Leia este artigo para obter instruções.

Aviso

A modificação da configuração padrão não deve ser tentada por meio da personalização de FFU. As entradas definidas pelo sistema podem ser atualizadas/alteradas por uma atualização do sistema e todas as configurações personalizadas serão perdidas.

Como configurar o filtro de cartão do MTP SD

Por padrão, o MTP enumerará todo o conteúdo de um cartão SD, se ele estiver presente no dispositivo. No entanto, é possível limitar essa enumeração a uma subpasta específica. Para fazer isso, você deve adicionar um valor MTPSDFolderFilter do Registro sob a chave HKEY_LOCAL_MACHINE\Software\Microsoft\MTPdo Registro . O valor é do tipo REG_SZ e deve conter um caminho relativo para a pasta que você gostaria que o MTP enumerasse. A pasta será criada automaticamente se ainda não existir.

Caminhos de exemplo:

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

Aviso

Não use um caminho absoluto que contenha a letra da unidade como C:\Some\Folder\Path , isso pode impedir que o cartão SD seja enumerado.

Consulte este link para obter detalhes sobre como personalizar sua imagem com entradas específicas do Registro.