Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Не следует перечислять устройства напрямую с помощью ключей реестра. Разделы реестра не содержат необходимые сведения для перечисления устройств, установленных в системе. Эти сведения, такие как наличие устройства на самом деле или фантомного устройства (которое не подключено), хранятся менеджером Plug and Play (PnP). Диспетчер PnP также выполняет дополнительную фильтрацию сведений о реестре.
Чтобы безопасно перечислить установленные устройства, выполните следующие действия.
Использование функций диспетчера конфигурации:
Используйте CM_Get_Device_ID_List для получения списка уникальных строк идентификатора экземпляра устройства . Чтобы получить сведения только для устройств, присутствующих в системе, задайте CM_GETIDLIST_FILTER_PRESENT в параметре ulFlags .
Вы можете использовать уникальный идентификатор экземпляра устройства с CM_Locate_DevNode для извлечения DEVINST, представляющего устройство для использования с другими API Configuration Manager.
Использование функций SetupAPI:
Используйте SetupDiGetClassDevs для получения сведений для набора устройств. Чтобы получить сведения только для устройств, присутствующих в системе, задайте DIGCF_PRESENT в параметре Flags .
Используйте SetupDiEnumDeviceInfo для перечисления устройств в наборе.
Вы можете использовать SP_DEVINFO_DATA , возвращенные SetupDiEnumDeviceInfo , с другими API SetupApi или использовать SetupDiGetDeviceInstanceId для получения уникального идентификатора экземпляра устройства (ID) для устройства.