次の方法で共有


メディア転送プロトコル

メディア転送プロトコル (MTP) を使用すると、USB を介して Windows 10 IoT Core デバイスとの間でファイルを転送できます。 これにより、デバイスの内部ストレージと SD カード (存在する場合) にアクセスできます。

この機能は、IoT Core キットの一部です。このキットは、「Windows 10 IoT Core パッケージ」からダウンロードし、インストールできます。

Windows 10 IoT Core を実行しているデバイスに MTP 機能をインストールする方法

必要なパッケージをデバイスにプロビジョニングする

  1. PowerShell または SSH を起動し、Windows 10 IoT Core を実行しているデバイスにアクセスします。
  2. PowerShell または SSH で、次の操作を行います。
    1. ターゲット マシンに一時フォルダーを作成します (例. C:\MTPTemp)。
    2. デバイスのアーキテクチャに基づき、PC (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 から次のコマンドを実行して、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. デバイスが起動して Update OS となり、MTP 機能がインストールされます。その後、デバイスが再起動して MainOS となります。

MTP USB インターフェイスを有効にする

デバイスが MainOS に戻った後、USBFN 構成を更新して MTP を含める必要があります。 これを行うには、USBFN によって列挙されたインターフェイスに MTP を追加する必要があります。 USB の構成について詳しくは、USB のレジストリ設定に関する記事を参照してください。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\Default キーで使用できる既定の USBFN 構成を変更できますが、独自の構成を定義することをお勧めします。これは、独自の構成がシステムの更新によって上書きされないためです。

MTP インターフェイスで新しい USBFN 構成を作成する

MTP を使用した新しい構成を追加するには、次の手順に従います。

  1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations で新しいキーを追加します。 例: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\MyConfiguration.
  2. 新しいキーの下に、MTP と等しい REG_MULTI_SZInterfaceList を作成します。
  3. 同じキーの下に、2800000000010400010000000000000000014D545000000000000000000000000000000000000000 と等しい REG_BINARYMSOSCompatIdDescriptor を作成します。
  4. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN の下に、新しく作成したキーの名前と等しい新しい REG_SZCurrentConfiguration を追加します。 この例では、MyConfiguration になります。
  5. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN の下の [Optional] で、1 と等しい新しい REG_DWORDIncludeDefaultCfg を追加します。 これにより、USB ドライバーによって MTP と共に既定のインターフェイスが列挙されます。

Note

カスタム構成を既に使用している場合は、新しい構成を作成するのではなく、そのカスタム構成を変更する必要があります。

既存の構成に MTP インターフェイスを追加する

既存の USBFN 構成に MTP を追加するには、次の手順に従います。

  1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN の下の CurrentConfiguration 値を確認して、現在の構成を見つけます。 値が存在する場合、現在の構成は HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\[CurrentConfiguration] で見つけることができます。 それ以外の場合は、HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\Default にあります。
  2. 現在の構成キーの下で、InterfaceList の値に \0MTP を追加します。 \0 という部分が使用されていますが、これは InterfaceList の型が REG_MULTI_SZ であり、値の間にこの区切り記号が必要であるためです。
  3. MSOSCompatIdDescriptor 値を変更して MTP の記述子を含めます。 InterfaceList 値の下に現在あるすべてのインターフェイスを含む有効な記述子を作成するには、こちらのページの下部にある手順に関するドキュメントに従ってください。 OS_Desc_CompatID.doc に、記述子の形式についての説明と、記述子に複数のインターフェイスを含める例があります。 同じページに MTP の互換 ID とサブ互換 ID も掲載されており、例の 1 つで使用されています。

カスタム FFU に MTP を含める方法

  1. OEM 入力ファイルに IOT_MTP 機能 ID を追加します。 これは、「必要なパッケージをデバイスにプロビジョニングする」セクションの手順に従うのと同等です。
  2. MTP インターフェイスで新しい USBFN 構成を作成する」セクションの説明に従い、同じレジストリの変更を適用する必要があります。 こちらの指示に従って、FFU にレジストリの変更を適用する方法について学習してください。
  3. image\FFU を作成する。 手順については、こちらの記事を参照してください。

警告

FFU のカスタマイズを通じて、既定の構成を変更しようとしないでください。 システム定義のエントリは、システム更新プログラムによって更新または変更される場合があり、カスタム設定は失われます。

MTP SD カード フィルターを設定する方法

デバイスに SD カードが存在する場合、既定では、MTP によって SD カードのすべての内容が列挙されます。 ただし、この列挙を特定のサブフォルダーに制限できます。 これを行うには、レジストリ キー HKEY_LOCAL_MACHINE\Software\Microsoft\MTP の下にレジストリ値 MTPSDFolderFilter を追加する必要があります。 値は REG_SZ 型で、MTP で列挙するフォルダーへの相対パスを含める必要があります。 フォルダーが存在しない場合は、自動的に作成されます。

パスの例:

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

警告

C:\Some\Folder\Path のようなドライブ文字を含む絶対パスは使用しないでください。これにより、SD カードが列挙されない場合があります。

特定のレジストリ エントリを使用したイメージのカスタマイズについて詳しくは、こちらのリンクを参照してください。