共用方式為


從卸除式裝置功能覆寫產生的容器標識碼

從 Windows 7 開始,新裝置應該提供總線特定的唯一標識碼 (,如 從 Bus-Specific 唯一標識符產生的容器 標識碼) 中所述。

或者,裝置和總線驅動程式必須正確設定卸除式裝置功能 (,如 從卸載式裝置功能) 產生的容器 標識碼中所述。 如需卸除式裝置功能的詳細資訊,請參閱 卸載式裝置功能概觀

Windows 7 和更新版本的 Windows 也支援覆寫回報抽取式裝置功能的機制。 此機制適用於報告卸除式裝置功能的舊版裝置不正確。

雖然覆寫機制不會變更卸除式裝置功能的值,但它會強制 PnP 管理員使用覆寫設定,而不是為裝置產生容器標識符時可移動裝置功能的值。

透過此覆寫機制,容器標識碼可以透過登錄型方法產生。 一旦為裝置的最上層 (父系) 裝置節點產生容器標識碼, (開發節點) 裝置時,裝置的每個子開發節點都會透過 從卸除式裝置功能產生的啟發學習法繼承相同的容器標識符。

覆寫機制是以登錄為基礎的查閱表格,其中包含對應至特定裝置的登錄機碼。 此覆寫數據表會保留在 DeviceOverrides 登錄機碼之下,並包含下列登錄機碼和子機碼。

數據表層級 登錄機碼/子機碼名稱 描述

1

DeviceOverrides

所有卸載式裝置功能覆寫的父鍵。

2

HardwareID

指定套用卸除式裝置功能覆寫之裝置 的硬體 識別碼。

此子機碼的名稱是實際的硬體標識碼,所有反斜杠 (''') 字元都會取代為數位 ('#') 字元。

2

CompatibleID

指定要套用卸除式裝置功能覆寫之裝置的 相容標識碼

此子機碼的名稱是實際的硬體標識碼,所有反斜杠 (''') 字元都會取代為數位 ('#') 字元。

3

LocationPaths

指定只有裝置父裝置節點的位置路徑 (devnode) 才會套用卸載式裝置功能覆寫。

3

ChildLocationPaths

指定裝置子開發節點的位置路徑將套用卸載式裝置功能覆寫。

注意 除非同時指定 LocationPaths 登錄子機碼,或為父開發節點指定 ChildLocationPaths 登錄子機碼,否則指定的裝置父代開發節點不會受到卸除式裝置功能覆寫的影響。

4

LocationPath

指定可行動裝置功能覆寫所套用之 devnode 的離散位置路徑。

此子機碼的名稱是計算機上安裝之裝置之單一 devnode 實例的實際位置路徑。

4

*

指定卸除式裝置功能覆寫適用於指定裝置的所有 devnode。

LocationPath* 登錄子機碼內,DWORD值 (可移動 式) 指定適用的 devnode 是否被視為可移動式 (1) 或非卸除式 (0) 。

範例 1

以下顯示開發節點的裝置覆寫,除了透過LocationPaths登錄子機碼指定的位置路徑之外,還符合 HardwareID 登錄子機碼。

在此範例中,覆寫會停用卸除式裝置功能,並套用至 VID_1234&PID_5678位於位置路徑 PCIROOT (0 ) #PCI (102) #USBROOT (0) #USB (1) 的所有開發節點。

以下是此覆寫的登錄數據表格式範例。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceOverrides
    USB#VID_1234&PID_5678
        LocationPaths
            PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1)
                Removable=0

在此範例中, USB#VID_1234&PID_5678 HardwareID 登錄子機碼的名稱,而 PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1)LocationPath 登錄子機碼的名稱。

此覆寫會變更 PnP) 管理員對裝置拓撲的解譯 隨插即用 (。 請注意,具有USB\VID_1234&PID_5678 硬體標識碼 值的devnode 在登錄中標示為不可卸除。 不會為此 devnode 產生新的容器標識符,因為 PnP 管理員會將 devnode 解譯為無法從其父代卸除。 相反地,USB\VID_1234&PID_5678 (及其所有子系) 繼承其父代的 ContainerID {A ) } (容器標識符{A}。

此覆寫的結果是單一裝置群組,因為樹狀結構中的所有開發節點都有相同的容器標識碼。 裝置 USB\VID_1234&PID_5678會解譯為與電腦整合。

下圖顯示產生的裝置拓撲和相關聯的容器標識碼指派。

說明可移動裝置功能覆寫的圖表,此覆寫會將 devnode 標示為不可移動。

上一個範例顯示經常遇到的開發節點拓撲:裝置硬式連線到特定總線位置的可攜式計算機,不正確地將自己回報為卸除式。 實體與計算機整合的裝置,例如網路攝影機或生物特徵辨識 (指紋) 感測器,不應該回報為可移動裝置,因為使用者無法實際將它們與計算機分開。 卸除式覆寫可讓獨立硬體廠商 (IHV) 或原始設備製造商 (OEM) 變更 PnP 管理員解譯卸載式裝置功能的方式,進而影響裝置的容器標識符指派。

範例 2

以下顯示符合特定 硬體 識別碼值之所有開發節點的抽取式裝置功能覆寫。

在此範例中,覆寫會啟用卸載式裝置功能,並將覆寫套用至硬體標識碼值為USB\VID_062A&PID_0000的開發節點。

以下是此覆寫之登錄數據表格式的高階描述。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceOverrides
    USB#VID_062A&PID_00001
        LocationPaths
            *
                Removable=1

1 HardwareID 登錄子機碼的名稱。

在此範例中,具有USB\VID_1234&PID_5678 硬體 標識符的開發節點會正確報告裝置卸載式功能。 PnP 管理員會為其及其所有子開發節點產生容器標識碼 (ContainerID {B}) 。

不過,具有USB\VID_062A&PID_0000 硬體 標識符的子開發節點符合覆寫。 因此,PnP 管理員會產生另一個包含的標識碼, (ContainerID {C}) 此 devnode 及其所有子開發節點。

如同先前,此覆寫會變更 PnP 管理員對裝置拓撲的解譯。 實體裝置會指派兩個容器標識碼,並由 Windows 視為兩個裝置。 請注意,具有 USB\VID_062A&PID_0000 硬體 識別碼的 devnode 會解譯為可移動套件,將開發節點分組到裝置中。 這不會變更 devnode 針對裝置卸除式功能所報告的值。

此外,已指定 * 登錄子機碼,表示此覆寫應該套用至計算機上具有USB\VID_062A&PID_0000 硬體 標識碼的所有開發節點。

下圖顯示產生的裝置拓撲和相關聯的容器標識碼指派。

說明可移動裝置功能覆寫的圖表,此覆寫會將 devnode 標示為可移動裝置。