Поделиться через


функция CM_Get_Device_ID_ListW (cfgmgr32.h)

Функция CM_Get_Device_ID_List извлекает список идентификаторов экземпляров устройства для экземпляров устройств локального компьютера.

Синтаксис

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 в ulFlags и указать идентификатор экземпляра устройства составного devnode мобильного телефона в pszFilter, функция возвращает идентификаторы экземпляров устройства для двух транспортных devnodes в параметре буфера .

Дополнительные сведения об идентификаторах экземпляров устройства см. в строках идентификации устройств.

Заметка

Заголовок cfgmgr32.h определяет CM_Get_Device_ID_List как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Microsoft Windows 2000 и более поздних версиях Windows.
целевая платформа Всеобщий
заголовка cfgmgr32.h (include Cfgmgr32.h)
библиотеки Cfgmgr32.lib
DLL CfgMgr32.dll

См. также

CM_Get_Device_ID_List_Size