函式控制器驅動程式的USB登錄設定

OEM 必須設定數個登錄值,以確保其裝置在連線到計算機時會以正確的元數據列舉。 這些值會指定 Windows 中 USB 裝置端驅動程式的裝置和設定描述項。 建立並包含其專屬介面的 OEM 必須設定額外的登錄值,才能載入及使用其介面。

與裝置端 USB 驅動程式相關的登入機碼位於: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN

本主題描述上述密鑰和子機碼的設定,這些金鑰會定義裝置的裝置、組態和介面描述元。

USBFN 登錄機碼

USB 裝置的組態資訊位於登入中: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN

下表描述其子索引鍵。 OEM 可以修改其中一些。 如需每個子索引鍵支援值的詳細資訊,請參閱下列各節。

訂閱金鑰 Description
替代項目 此子機碼包含描述具有一或多個替代設定之介面的其他子索引鍵。
協會 這個子索引鍵會定義介面關聯描述元 (IAD) 。 每個 IAD 允許將多個介面分組成單一函式。 每個子機碼都代表不同的 IAD,OEM 可以修改這些子索引鍵的值。
預設值 此子機碼包含用來描述裝置特定設定的預設值,例如 VID 和 PID。 這是 Microsoft 擁有的子機碼,其值會由父索引鍵中的子索引鍵覆寫。
組態 此子機碼包含其他子機碼,其中包含USB列舉期間所使用的組態描述項值。 例如,標準測試組態可能存在於 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations\TestConfig底下。
Configurations\Default 這是 Microsoft 擁有的子機碼。 它包含預設組態的值。 當 IncludeDefaultCfg 值設定為 1 時,預設組態中的介面會在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN 機碼下出現目前的組態之前新增。
介面 此子機碼包含描述特定介面描述元的其他子索引鍵。 例如,透過USB介面的IP可能位於 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces\IpOverUsb底下。 介面子機碼的名稱也會用來作為 USBFN 子裝置的硬體識別碼,以載入 USBFn 類別驅動程式。 在透過USB的IP範例中,USBFN子裝置的硬體標識碼將會是 USBFN\IpOverUsb

下表描述 OEM 可以在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN 機碼中定義的值。 此機碼中未定義的值會假設 Microsoft 在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Default下定義的預設值。

所有 OEM 都必須設定 idVendoridProductManufacturerStringProductString 值。 建立和新增其專屬介面的 OEM 也必須將 CurrentConfiguration 設定為在 InterfaceList 中包含其介面之子機碼的 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations 名稱。

類型 擁有者 Description
IncludeDefaultCfg REG_DWORD OEM 當 OEM 想要包含預設設定的介面,例如 IpOverUsb 或 MTP 時,請將 設定為 1。
idVendor REG_DWORD OEM 列舉期間傳送至主機之裝置描述元的廠商標識碼。
idProduct REG_DWORD OEM 列舉期間傳送至主機之裝置描述元的產品標識碼。
ManufacturerString REG_SZ OEM 傳送給主機以識別裝置製造商的製造商字串。
ProductString REG_SZ OEM 字串,描述裝置為產品。 默認值為 device Windows 10 行動裝置版。 此值會當做連線計算機使用者介面中裝置的顯示名稱使用。 OEM 應該確定此值符合 DeviceTargetingInfo 子機碼下 PhoneModelName 值的值。
iSerialNumber REG_DWORD OEM 如果此值設定為 0,則裝置沒有序號。 如果此值不是零或不存在,則每個裝置都會唯一產生序號。
CurrentConfiguration REG_SZ OEM 此字串必須對應至組態子機碼的名稱。 此字串會決定要用來建置USB裝置列舉之組態描述元的組態。
ClassEndpointRequestEnabled REG_DWORD OEM 當您想要指出已接受類別端點要求時,請將 設定為 1。 預設不接受類別端點要求。 當您想要指出類別端點要求不接受或只接受特定介面時,請將 設定為 0 (或未設定此登入) 值。 請參閱 USBFN\Interfaces 登錄機碼一節中的 ClassEndpointRequestEnabled 值,以瞭解如何接受特定介面的類別端點要求。

USBFN\Configurations 登錄機碼

下表描述 OEM 可以在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations下為子索引鍵定義的值。 每個子機碼都代表不同的USB組態。 如果 OEM 想要建立自己的介面,OEM 必須定義新的設定,其中包含要使用的介面。 若要這樣做,請在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Configurations 下建立子機碼,以使用組態的名稱,並將此數據表中的值填入子索引鍵。 此外,若要讓USB驅動程式使用新的設定,上表中所述的 CurrentConfiguration 值 () 必須設定為組態子機碼的名稱。

類型 擁有者 Description
InterfaceList REG_MULTI_SZ OEM 或 Microsoft 包含介面名稱清單,這些名稱對應至 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces 下的介面子索引鍵、HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Associations下定義的 IAD 關聯,以及 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Alternates下定義的替代介面。 這些索引鍵會決定用來描述複合組態描述元的介面。

如果 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN 機碼底下的 IncludeDefaultCfg 值設定為 1,此列表會附加至 Microsoft 擁有的預設介面清單,以建立裝置將用來列舉的完整介面清單。
MSOSCompatIdDescriptor REG_BINARY OEM 或 Microsoft 選擇性。 定義組態的擴充相容性標識碼OS功能描述項。 如果 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN 機碼底下的 IncludeDefaultCfg 值設定為 1,則此描述元中的函式會附加至預設組態中的函式和介面。

USBFN\Interfaces 登錄機碼

下表描述 OEM 可在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces下修改子機碼的值。

每個子機碼都代表不同的USB介面。 若要定義介面,請使用介面的名稱 在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces 下建立子機碼,並將下表中的值填入其中。 此外,只有在介面是 CurrentConfiguration之 InterfaceList 的一部分時,才會包含介面。

類型 擁有者 Description
InterfaceDescriptor REG_BINARY OEM 或 Microsoft 在USB列舉期間傳送至主機之介面描述元的二進位表示法。 編譯完整組態描述元之後,USB 函式堆疊會自動填入 bInterfaceNumberiInterface 值,以避免與其他介面描述項發生衝突。
InterfaceGUID REG_SZ OEM 或 Microsoft 可唯一識別總線上介面的 GUID。
InterfaceNumber REG_DWORD OEM 或 Microsoft 選擇性。 這個值是用來將固定介面編號指派給函式。 介面號碼 0-1F 保留給舊版函式、20-3F 保留給 Microsoft,而 40-5F 則保留供 OEM 使用。
MSOSExtendedPropertyDescriptor REG_BINARY OEM 或 Microsoft 選擇性。 定義介面的擴充屬性OS功能描述項。
ClassEndpointRequestEnabled REG_DWORD OEM 只有當 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\ClassEndpointRequestEnabled 不存在或設定為 0 時,此登錄值才有效。 當您想要指出接受此介面的類別端點要求時,請將此登錄值設定為 1。 當您想要指出此介面的類別端點要求不接受時,請將 設定為 0 (或未將此登入值設定為) 。

USBFN\Alternates 登錄機碼

替代子索引鍵是用來定義具有一或多個替代介面的單一介面。 下表描述 OEM 可在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Alternates下修改子機碼的值。

每個子索引鍵都代表不同的介面。 若要使用替代設定來定義介面,請使用 介面的名稱 ,在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Alternates 下建立子機碼,並將下表中的值填入其中。

類型 擁有者 Description
InterfaceList REG_MULTI_SZ OEM 或 Microsoft 兩個更多介面名稱的清單,這些名稱對應至 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Interfaces下定義的介面。 該索引鍵會統一定義具有替代設定的介面。 第一個介面對應至替代設定0,第二個介面對應至替代設定1,依此類加。
InterfaceNumber REG_DWORD OEM 或 Microsoft 選擇性。 這個值是用來將固定介面編號指派給函式。 介面號碼 0-1F 保留給舊版函式、20-3F 保留給 Microsoft,而 40-5F 則保留供 OEM 使用。
MSOSExtendedPropertyDescriptor REG_BINARY OEM 或 Microsoft 選擇性。 定義介面的擴充屬性OS功能描述項。

USBFN\Associations 登錄機碼

OEM 可以藉由定義介面關聯描述元 (識別子) 來指定關聯。 每個 IAD 允許將多個介面分組成單一函式。 下表描述 OEM 可在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Associations下修改子機碼的值。

每個子機碼都代表不同的 IAD。 若要定義關聯,請使用IAD的名稱 ,在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\USBFN\Associations 下建立子機碼,並將下表中的值填入其中。

類型 擁有者 Description
InterfaceList REG_MULTI_SZ OEM 或 Microsoft 與 USB 函式相關聯的介面或替代介面清單。 如果清單的大小小於 2,則函式驅動程式堆疊無法載入。 其他函式或介面會繼續載入。
bFunctionClass REG_DWORD OEM 或 Microsoft 函式的類別程式代碼,設定為 02。
bFunctionSubClass REG_DWORD OEM 或 Microsoft 函式的子類別代碼,設定為 0d。
bFunctionProtocol REG_DWORD 函式的通訊協定程式代碼,設定為 01。
MSOSExtendedPropertyDescriptor REG_BINARY OEM 或 Microsoft 選擇性。 定義介面的擴充屬性OS功能描述項。

MirrorLink 是一種互操作性標準,可讓行動裝置與汽車資訊系統整合。 裝置必須將 USB CDC NCM 介面公開給 MirrorLink 用戶端。 身為通訊裝置類別 (CDC) 裝置,您必須使用介面關聯描述元 (IAD) 和/或 CDC 函數聯集描述元來描述數據介面。

若要在 Windows 10 行動裝置版 裝置上啟用 MirrorLink 連線,OEM 必須進行這些變更,才能公開 IAD。

  • 藉由設定上表所示的登錄值,使用介面關聯描述元 (IAD) 建立通訊和數據介面的關聯。

  • 除了登錄設定之外,請將此登錄值設定為非零值。

    類型 擁有者 Description
    MirrorLink REG_DWORD OEM 或 Microsoft 非零值表示介面支援 MirrorLink。 USB 函式堆疊不會停止 MirrorLink USB 命令。
  • 類別特定的描述元可以包含在登錄中定義的介面描述元集合中。 大小欄位必須在這些描述元中設定,以便 USB 函式驅動程式堆疊可以正確地剖析它們。

或者,CDC 函數聯集描述元也可以定義為 Class-Specific 介面描述元;不過,Union 描述元指定的介面編號是靜態的,而且不會由USB函式驅動程式堆棧指派,而且 Union 描述元的存在不會造成其所描述的介面與單一子 PDO 相關聯。 該關聯需要 IAD。