Перечисление установленных интерфейсов устройств
Не следует перечислять интерфейсы устройств в системе путем прямого доступа к разделам реестра. Как и в случае с любым разделом реестра, расположение, имя или формат ключа могут меняться в разных версиях Windows.
Используйте следующие рекомендации для безопасного перечисления интерфейсов устройств.
Приложения в пользовательском режиме должны выполнять следующие действия.
Использование функций диспетчера конфигураций :
Используйте CM_Get_Device_Interface_List , чтобы получить список интерфейсов устройств в указанном InterfaceClassGuid. При необходимости можно ограничить список только интерфейсами устройств, предоставляемыми определенным устройством, задав для параметра pDeviceID определенный идентификатор экземпляра устройства.
Чтобы включить только интерфейсы устройств, которые присутствуют (включены) в системе, установите флаг CM_GET_DEVICE_INTERFACE_LIST_PRESENT в параметре ulFlags .
Использование функций SetupApi :
Используйте SetupDiGetClassDevs или SetupDiGetClassDevsEx с флагом DIGCF_DEVICEINTERFACE , установленным в параметре Flags , чтобы получить интерфейсы устройства для указанного класса интерфейса устройства. При необходимости можно ограничить список только интерфейсами устройств, предоставляемыми определенным устройством, задав для параметра Enumerator определенный идентификатор экземпляра устройства.
Чтобы включить только интерфейсы устройств, которые присутствуют (включены) в системе, установите флаг DIGCF_PRESENT в параметре Flags .
Используйте SetupDiEnumDeviceInterfaces для перечисления интерфейсов, возвращаемых приведенными выше вызовами.
Драйверы в режиме ядра должны использовать IoGetDeviceInterfaces для получения списка интерфейсов устройств в указанном InterfaceClassGuid. При необходимости можно ограничить список только интерфейсами устройств, предоставляемыми определенным устройством, задав параметр PhysicalDeviceObject .
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по