函式控制器驅動程式的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 都必須設定 idVendor、 idProduct、 ManufacturerString 和 ProductString 值。 建立和新增其專屬介面的 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 函式堆疊會自動填入 bInterfaceNumber 和 iInterface 值,以避免與其他介面描述項發生衝突。 |
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
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。