卸除式裝置功能概觀
卸除式裝置功能是一個 (卸除式) ,總線驅動程式會在DEVICE_CAPABILITIES結構中設定,以回應指定裝置節點 (開發節點) 的IRP_MN_QUERY_CAPABILITIES函式程序代碼。
當 devnode 及其所有子開發節點組成裝置時,總線驅動程式會設定 devnode 的卸載式裝置功能,這些裝置可在電腦執行時實際移除、中斷連線或從其父開發節點取消叢集。 一般而言,如果 devnode 是 devnode 拓撲中最上層的 devnode,則應該將 devnode 標示為可移動。
在 devnode 上正確設定抽取式裝置功能很重要。 如果總線驅動程式無法為其列舉的 devnode 提供容器標識碼,隨插即用 (PnP) 管理員會使用卸載式裝置功能來為裝置列舉的所有 devnode 產生容器標識符。
例如,假設單一函式裝置,例如滑鼠,是透過USB連接到電腦。 在此情況下,USB 總線驅動程式會偵測到新的裝置、偵測它是USB人為介面裝置 (HID) ,併為裝置建立USB HID開發節點。 HID devnode 也會偵測 HID 裝置是滑鼠,並針對符合 HID 規範的滑鼠建立子開發節點。 此時,會安裝滑鼠並在計算機上運作。 這兩個新的開發節點都使用獨立的 驅動程式堆疊。
一般規則是,裝置的最上層 (父) devnode 應該設定為可移動裝置,而其每個子開發節點不應該設定為可移動節點。 在上述範例中,USB 總線驅動程式會將USB HID devnode的 可移動 位設定為 TRUE ,並將子HID相容滑鼠 devnode 的 可移動 位設定為 FALSE 。
下列 裝置管理員 螢幕快照顯示一般 USB 滑鼠的開發節點拓撲,並顯示哪些滑鼠開發節點標示為可移動。