共用方式為


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

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

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

Windows 7 和更新版本的 Windows 也支援覆寫所報告的卸除式裝置功能的機制。 此機制對於錯誤地報告卸除式裝置功能的舊版裝置很有用。

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

透過這種覆寫機制,可以透過註冊表型方法產生容器ID。 一旦為裝置的最上層 (父) 裝置節點 (devnode) 產生容器識別碼,裝置的每個子 devnode 就會透過從 卸除式裝置功能產生的容器識別碼中所述的啟發式繼承相同的容器識別碼。

覆寫機制是以登錄為基礎的查閱表,其中包含對應至特定裝置的登錄機碼。 此覆寫表維護於 DeviceOverrides 登錄機碼下,並包含下列登錄機碼和子機碼。

資料表層級 登錄機碼/子機碼名稱 說明

1

裝置覆寫

所有卸除式裝置功能覆寫的父金鑰。

2

硬體識別碼

指定適用於可移除裝置功能覆寫的裝置硬體識別碼

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

2

相容標識碼

指定套用抽取式裝置功能覆寫之裝置的 相容識別碼

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

3

位置路徑

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

3

子位置路徑

指定裝置子節點的路徑位置將套用可卸除裝置功能的覆寫。

注意:指定裝置的父 devnode 不會受到卸除裝置功能覆寫的影響,除非也指定了 LocationPaths 登錄子機碼,或為父 devnode 指定了 ChildLocationPaths 登錄子機碼。

4

位置路徑

指定可移除裝置功能覆寫適用之 devnode 的離散位置路徑。

此子機碼名稱是電腦中安裝之設備的單一 devnode 實例的實際路徑位置。

4

*

指定卸除式裝置功能覆寫會套用至指定裝置的所有開發節點。

LocationPath* 登錄子機碼中,DWORD 值 (可移除) 會指定適用的開發節點是否被視為可移除 (1) 或不可移除 (0) 。

範例 1

以下顯示的是針對 devnode 的裝置覆寫,需同時符合 HardwareID 登錄子機碼及透過 LocationPaths 登錄子機碼指定的位置路徑。

在此範例中,覆寫將停用可移除裝置功能,並應用於位置路徑 PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1) 上所有具備 硬體識別碼 為 USB\VID_1234&PID_5678 的設備節點。

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

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}) 。

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

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

顯示覆寫可移除裝置功能以將 DevNode 標記為不可移除的圖表。

上一個範例顯示經常遇到的 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 的 devnode 會正確報告裝置可卸除能力。 PnP 管理員會為其及其所有子設備節點產生容器識別碼(ContainerID {B})。

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

如同先前,此覆寫會變更 PnP 管理員對裝置拓撲的解譯。 實體裝置會獲指派兩個容器識別碼,而且 Windows 會將其視為兩個裝置。 請注意,具有 硬體識別碼 USB\VID_062A&PID_0000 的 devnode 在將 devnode 分組到裝置中時,會被解釋為可移除。 這不會變更 devnode 針對裝置卸除式功能所報告的值。

此外,已指定 * 登錄子機碼,以指出此覆寫應該套用至電腦上 硬體識別碼 為 USB\VID_062A&PID_0000 之所有裝置節點。

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

說明將 DevNode 標示為可移除的卸除式裝置功能覆寫的圖表。