メディア転送プロトコル
メディア転送プロトコル (MTP) を使用すると、USB を介して Windows 10 IoT Core デバイスとの間でファイルを転送できます。 これにより、デバイスの内部ストレージと SD カード (存在する場合) にアクセスできます。
この機能は、IoT Core キットの一部です。このキットは、「Windows 10 IoT Core パッケージ」からダウンロードし、インストールできます。
Windows 10 IoT Core を実行しているデバイスに MTP 機能をインストールする方法
必要なパッケージをデバイスにプロビジョニングする
- PowerShell または SSH を起動し、Windows 10 IoT Core を実行しているデバイスにアクセスします。
- PowerShell または SSH で、次の操作を行います。
- ターゲット マシンに一時フォルダーを作成します (例.
C:\MTPTemp
)。 - デバイスのアーキテクチャに基づき、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
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
- ターゲット マシンに一時フォルダーを作成します (例.
- デバイスが起動して 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 を使用した新しい構成を追加するには、次の手順に従います。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations
で新しいキーを追加します。 例:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\MyConfiguration
.- 新しいキーの下に、
MTP
と等しいREG_MULTI_SZ
値InterfaceList
を作成します。 - 同じキーの下に、
2800000000010400010000000000000000014D545000000000000000000000000000000000000000
と等しいREG_BINARY
値MSOSCompatIdDescriptor
を作成します。 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN
の下に、新しく作成したキーの名前と等しい新しいREG_SZ
値CurrentConfiguration
を追加します。 この例では、MyConfiguration
になります。HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN
の下の [Optional] で、1 と等しい新しいREG_DWORD
値IncludeDefaultCfg
を追加します。 これにより、USB ドライバーによって MTP と共に既定のインターフェイスが列挙されます。
Note
カスタム構成を既に使用している場合は、新しい構成を作成するのではなく、そのカスタム構成を変更する必要があります。
既存の構成に MTP インターフェイスを追加する
既存の USBFN 構成に MTP を追加するには、次の手順に従います。
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
にあります。- 現在の構成キーの下で、
InterfaceList
の値に\0MTP
を追加します。 \0 という部分が使用されていますが、これはInterfaceList
の型がREG_MULTI_SZ
であり、値の間にこの区切り記号が必要であるためです。 MSOSCompatIdDescriptor
値を変更して MTP の記述子を含めます。InterfaceList
値の下に現在あるすべてのインターフェイスを含む有効な記述子を作成するには、こちらのページの下部にある手順に関するドキュメントに従ってください。 OS_Desc_CompatID.doc に、記述子の形式についての説明と、記述子に複数のインターフェイスを含める例があります。 同じページに MTP の互換 ID とサブ互換 ID も掲載されており、例の 1 つで使用されています。
カスタム FFU に MTP を含める方法
- OEM 入力ファイルに IOT_MTP 機能 ID を追加します。 これは、「必要なパッケージをデバイスにプロビジョニングする」セクションの手順に従うのと同等です。
- 「MTP インターフェイスで新しい USBFN 構成を作成する」セクションの説明に従い、同じレジストリの変更を適用する必要があります。 こちらの指示に従って、FFU にレジストリの変更を適用する方法について学習してください。
- 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 カードが列挙されない場合があります。
特定のレジストリ エントリを使用したイメージのカスタマイズについて詳しくは、こちらのリンクを参照してください。