媒體傳輸通訊協定

媒體傳輸通訊協定 (MTP) 可讓您透過 USB 在Windows 10 IoT 核心版裝置上傳輸檔案。 如果存在,它允許存取裝置的內部儲存體和 SD 記憶卡。

此功能是 IoT 核心套件的一部分,可從Windows 10 IoT 核心版套件下載並安裝。

如何在執行 Windows 10 IoT 核心版 的裝置上安裝 MTP 功能

使用必要套件布建裝置

  1. 啟動PowerShellSSH,並存取執行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 執行下列命令,將套件安裝到 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. 裝置會開機至更新 OS、安裝 MTP 功能,然後重新開機至 MainOS。

啟用 MTP USB 介面

一旦裝置回到 MainOS,USBFN 設定仍然需要更新以包含 MTP。 若要這樣做,您必須將 MTP 新增至 USBFN 列舉的介面。 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. 在新索引鍵下,建立 REG_MULTI_SZ 等於 MTP 的值 InterfaceList
  3. 在相同的索引鍵下,建立 REG_BINARY 等於 2800000000010400010000000000000000014D545000000000000000000000000000000000000000 的值 MSOSCompatIdDescriptor
  4. 在 底下 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN ,加入等於新建立索引鍵名稱的新 REG_SZCurrentConfiguration 。 在此案例中,這將會是 MyConfiguration
  5. [選擇性]在 底下 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN ,新增等於 1 的新 REG_DWORDIncludeDefaultCfg 。 這會讓 USB 驅動程式列舉預設介面以及 MTP。

注意

如果您已經使用自訂群組態,則必須修改它,而不是建立新的組態。

將 MTP 介面新增至現有的組態

請遵循下列步驟,將 MTP 新增至現有的 USBFN 設定:

  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. 在目前的組態索引鍵下,將 新增 \0MTP 至 的值 InterfaceList\0元件會當做 的型 InterfaceListREG_MULTI_SZ 別使用,而且它需要值之間的這個分隔符號。
  3. MSOSCompatIdDescriptor修改值以包含 MTP 的描述元。 若要建立包含目前值下 InterfaceList 所有介面的有效描述元,請遵循 此頁面底部提供的指示檔。 OS_Desc_CompatID.doc 說明描述項的格式,以及描述項中包含多個介面的範例。 MTP 的相容和子相容識別碼也可以在相同的頁面上使用,並用於其中一個範例。

如何在您的自訂 FFU 中包含 MTP

  1. IOT_MTP 功能識別碼新增至 OEM 輸入檔。 This is an equivalent of following the steps from the "Provisioning the device with required packages" section.
  2. Make sure to apply the same registry changes as mentioned in the "Creating a new USBFN configuration with the MTP interface" section. 請遵循 這些指示 ,瞭解如何將登錄變更套用至 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 記憶卡無法列舉。

如需使用特定登錄專案自訂映射的詳細資訊,請參閱 此連結