共用方式為


針對容器識別碼的實作進行疑難排解

如果裝置和印表機使用者介面中的一個以上的裝置實例 (UI) 當您預期只有一個時,裝置不會正確實作容器識別碼需求。 這個不正確的實作會導致 隨插即用 (PnP) 管理員將一或多個裝置節點群組 (開發節點) 到裝置的其他裝置容器。

在這種情況下,您應該檢查下列各項:

  • 是否已針對針對裝置列舉的每個 devnode 正確設定抽取式裝置功能?

    這是裝置和印表機 UI 中多個裝置實例最常見的原因。 請確定裝置的每個開發節點都已適當設定抽取式裝置功能。 裝置的最上層或 代開發節點應該回報為可移動裝置,而且其所有子系都應該回報為不可卸載式。 自訂匯流排驅動程式實作必須正確指派其列舉之 devnode 的卸載式關聯性。

    裝置管理員是診斷這些問題的重要工具。 您可以遵循下列步驟來檢查完整的 devnode 階層:

    1. 以滑鼠右鍵按一下 [我的電腦] 圖示,然後按一下 [ 管理 ]。 然後從結果顯示的 [系統工具] 中選取[裝置管理員]。
    2. 按一下下拉式功能表中的 [ 依連線檢視 ]。
    3. 找出構成您裝置的 devnode。 針對每個 devnode,以滑鼠右鍵按一下節點,然後按一下 [ 屬性]。
    4. 在 [ 詳細資料] 索引標籤的 [ 屬性 ] 下拉式清單中,按一下 [ 功能]。

    如果 devnode 的功能值清單包含CM_DEVCAP_REMOVABLE旗標,則 devnode 會標示為可移動。 隨插即用 (PnP) 管理員接著會為 devnode 及其無法移除的子系建立新的裝置容器。

    如需卸載式裝置功能的詳細資訊,請參閱 從卸載式裝置功能產生的容器識別碼。

    如需裝置管理員的詳細資訊,請參閱使用裝置管理員

  • 裝置是否包含硬體中的容器識別碼或其他唯一識別碼?

    請確定硬體中的容器識別碼或唯一識別碼格式符合指定匯流排的格式需求。 如需詳細資訊,請參閱 從Bus-Specific唯一識別碼產生的容器識別碼

    如果自訂匯流排驅動程式會列舉裝置的開發節點,請檢查匯流排驅動程式是否已正確回應BusQueryContainerID的IRP_MN_QUERY_ID要求。

  • 裝置是否同時透過一個以上的匯流排連線到電腦?

    如果裝置同時透過兩部或更多匯流排連線到電腦,裝置的兩個或多個實例可能會出現在 [裝置] 和 [印表機] UI 中。 這些實例可以有一或多個裝置實例,用於連接裝置的每個匯流排。 若要解決此問題,請確定裝置會報告容器識別碼或裝置特定的唯一識別碼,並在每個匯流排上報告相同的值。