функция CM_Get_Device_ID_ListW (cfgmgr32.h)
Функция
Синтаксис
CMAPI CONFIGRET CM_Get_Device_ID_ListW(
[in, optional] PCWSTR pszFilter,
[out] PZZWSTR Buffer,
[in] ULONG BufferLen,
[in] ULONG ulFlags
);
Параметры
[in, optional] pszFilter
Вызывающий указатель на символьную строку, которая либо имеет подмножество идентификаторов экземпляра устройства компьютера (идентификаторы), либо значение NULL. См. следующее описание ulFlags.
[out] Buffer
Адрес буфера для получения набора строк идентификатора экземпляра экземпляра устройства, завершающего значение NULL. Конец набора завершается дополнительным NULL. Требуемый размер буфера должен быть получен путем вызова CM_Get_Device_ID_List_Size.
[in] BufferLen
Длина, предоставляемая вызывающим объектом в символах буфера, заданного буфером.
[in] ulFlags
Один из следующих флагов битов, предоставленных вызывающим абонентом, который задает фильтры поиска:
CM_GETIDLIST_FILTER_BUSRELATIONS
Если этот флаг задан, pszFilter должен указать идентификатор экземпляра устройства. Функция возвращает идентификаторы экземпляров устройства для связей шины указанного экземпляра устройства.
CM_GETIDLIST_FILTER_CLASS (Windows 7 и более поздних версий Windows)
Если этот флаг задан, pszFilter содержит строку, указывающую класс установки устройства GUID. Возвращенный список содержит экземпляры устройств, для которых свойство (на которое ссылается константой CM_DRP_CLASSGUID) соответствует указанному GUID класса установки устройства.
Константа CM_DRP_CLASSGUID определена в Cfgmgr32.h.
CM_GETIDLIST_FILTER_PRESENT (Windows 7 и более поздних версий Windows)
Если этот флаг задан, возвращенный список содержит только экземпляры устройств, которые в настоящее время присутствуют в системе. Это значение можно объединить с другими значениями ulFlags, например CM_GETIDLIST_FILTER_CLASS.
CM_GETIDLIST_FILTER_TRANSPORTRELATIONS (Windows 7 и более поздних версий Windows)
Если этот флаг задан, pszFilter должен указать идентификатор экземпляра устройства составного узла устройства (devnode).
Функция возвращает идентификаторы экземпляра устройства devnodes, которые представляют отношения транспорта указанного составного devnode.
Дополнительные сведения о составных devnodes и отношениях транспорта см. в следующем разделе Примечания.
CM_GETIDLIST_DONOTGENERATE
Используется только с CM_GETIDLIST_FILTER_SERVICE. Если задано и если дерево устройства не содержит devnode для указанной службы, этот флаг запрещает функции создавать devnode для службы.
CM_GETIDLIST_FILTER_EJECTRELATIONS
Если этот флаг задан, pszFilter должен указать идентификатор экземпляра устройства. Функция возвращает идентификаторы экземпляров устройства для отношений извлечения указанного экземпляра устройства.
CM_GETIDLIST_FILTER_ENUMERATOR
Если этот флаг задан, pszFilter должен указать имя перечислителя устройства, а также идентификатор устройства. Строковый формат EnumeratorName\<DeviceID>, например ROOT или ROOT-\*PNP0500.
Если pszFilter предоставляет только имя перечислителя, функция возвращает идентификаторы экземпляра устройства для экземпляров каждого устройства, связанного с перечислителем. Имена перечислителя можно получить путем вызова CM_Enumerate_Enumerators.
Если pszFilter предоставляет перечислитель и идентификатор устройства , функция возвращает идентификаторы экземпляров устройства только для экземпляров указанного устройства, связанного с перечислителем.
CM_GETIDLIST_FILTER_NONE
Если этот флаг задан, pszFilter игнорируется, а возвращается список всех устройств в системе.
CM_GETIDLIST_FILTER_POWERRELATIONS
Если этот флаг задан, pszFilter должен указать идентификатор экземпляра устройства. Функция возвращает идентификаторы экземпляров устройства для отношений питания указанного экземпляра устройства.
CM_GETIDLIST_FILTER_REMOVALRELATIONS
Если этот флаг задан, pszFilter должен указать идентификатор экземпляра устройства. Функция возвращает идентификаторы экземпляров устройства для связей удаления указанного экземпляра устройства.
CM_GETIDLIST_FILTER_SERVICE
Если этот флаг задан, pszFilter должны указать имя службы Microsoft Windows (как правило, драйвер). Функция возвращает идентификаторы экземпляров устройства для экземпляров устройств, управляемых указанной службой.
Обратите внимание, что если дерево устройств не содержит devnode для указанной службы, эта функция по умолчанию создает одну из них. Чтобы запретить это поведение, также задайте CM_GETIDLIST_DONOTGENERATE.
Если флаг фильтра поиска не указан, функция возвращает идентификаторы всех экземпляров устройства для всех экземпляров устройств.
Возвращаемое значение
Если операция выполнена успешно, функция возвращает CR_SUCCESS. В противном случае возвращается один из кодов ошибок с префиксом CR_, определенных в Cfgmgr32.h.
Замечания
Начиная с Windows 7 устройство, которое поддерживает несколько путей транспорта для данных на основе пакетов, называется составным устройством и представлено составным составным devnode. Составной devnode логически представляет составное устройство пользователю и приложениям в виде одного устройства, даже если составной devnode может иметь несколько путей к физическому устройству.
Каждый активный транспортный путь к физическому устройству представлен методом разработки транспорта и называется отношением транспорта для составного устройства.
Составной devnode (но не связанный транспорт devnodes) предоставляет интерфейсы устройств приложениям и системе. Когда приложение использует эти общедоступные интерфейсы устройств, составное устройство направляет данные на основе пакетов в один или несколько этих транспортных devnodes, которые затем передают данные на физическое устройство.
Например, если физический мобильный телефон одновременно подключен к компьютеру на USB и автобусах Bluetooth, каждая шина перечисляет дочерний транспорт devnode на этой шине, чтобы представить физическое подключение устройства.
В этом случае если задать флаги CM_GETIDLIST_FILTER_TRANSPORTRELATIONS в
Дополнительные сведения об идентификаторах экземпляров устройства см. в строках идентификации устройств.
Заметка
Заголовок cfgmgr32.h определяет CM_Get_Device_ID_List как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Microsoft Windows 2000 и более поздних версиях Windows. |
целевая платформа | Всеобщий |
заголовка | cfgmgr32.h (include Cfgmgr32.h) |
библиотеки |
Cfgmgr32.lib |
DLL | CfgMgr32.dll |