您無法直接存取登錄機碼來列舉系統中的裝置介面。 如同任何登錄機碼,密鑰的位置、名稱或格式可能會在不同的 Windows 版本之間變更。
使用下列指導方針安全地列舉裝置介面。
使用者模式應用程式應遵循下列步驟:
使用 組態管理員 函式:
使用 CM_Get_Device_Interface_List 擷取指定 InterfaceClassGuid 中的裝置介面清單。 您可以選擇性地將pDeviceID參數設定為特定裝置的實體識別碼,以將清單限縮為該裝置所公開的裝置介面。
若要只包含系統中存在的裝置介面(已啟用),請在ulFlags參數中設定CM_GET_DEVICE_INTERFACE_LIST_PRESENT旗標。
使用 SetupApi 函式:
使用 SetupDiGetClassDevs 或 SetupDiGetClassDevsEx 搭配 Flags 參數中設定的 DIGCF_DEVICEINTERFACE 旗標,擷取指定裝置介面類別的裝置介面。 您可以選擇性地將 Enumerator 參數設定為特定裝置的實例標識碼,以將清單限制為由該裝置公開的裝置介面。
若要只包含系統中存在的裝置介面(已啟用),請在 Flags 參數中設定DIGCF_PRESENT旗標。
使用 SetupDiEnumDeviceInterfaces 列舉上述呼叫所傳回的介面。
內核模式驅動程序應該使用 IoGetDeviceInterfaces 來擷取指定 InterfaceClassGuid 中的裝置介面清單。 您可以選擇性地將清單限制為只有特定裝置所公開的裝置介面,方法是設定 PhysicalDeviceObject 參數。