共用方式為


列舉已安裝的裝置介面

您無法直接存取登錄機碼來列舉系統中的裝置介面。 如同任何登錄機碼,不同 Windows 版本之間的機碼位置、名稱或格式可能會變更。

使用下列指導方針安全地列舉裝置介面。

使用者模式應用程式應遵循下列步驟:

  • 使用 Configuration Manager 函式:

    使用 CM_Get_Device_Interface_List 擷取指定 之 InterfaceClassGuid 中的裝置介面清單。 您可以選擇性地將 pDeviceID 參數設定為特定裝置實例識別碼,將清單限制為只有特定裝置所公開的裝置介面。

    若要只包含系統中 (啟用) 的裝置介面,請在 ulFlags 參數中設定CM_GET_DEVICE_INTERFACE_LIST_PRESENT旗標。

  • 使用 SetupApi 函式:

    1. 使用 SetupDiGetClassDevs 或 SetupDiGetClassDevsEx 搭配 Flags 參數中設定的 DIGCF_DEVICEINTERFACE 旗標,以擷取指定裝置介面類別的裝置介面。 您可以選擇性地將清單限制為只有特定裝置所公開的裝置介面,方法是將 Enumerator 參數設定為特定裝置實例識別碼。

      若要只包含系統中已啟用 () 的裝置介面,請在 Flags 參數中設定DIGCF_PRESENT旗標。

    2. 使用 SetupDiEnumDeviceInterfaces 列舉上述呼叫所傳回的介面。

核心模式驅動程序應該使用 IoGetDeviceInterfaces 來擷取指定 InterfaceClassGuid 中的裝置介面清單。 您可以透過設定 PhysicalDeviceObject 參數,選擇性地將清單限制為只有特定裝置所公開的裝置介面。