Метод IFunctionDiscovery::GetInstanceCollection (functiondiscoveryapi.h)

[Функция обнаружения доступна для использования в операционных системах, указанных в разделе Требования. Он может быть изменен или недоступен в последующих версиях.]

Возвращает указанную коллекцию экземпляров функции на основе категории и подкатегории.

Синтаксис

HRESULT GetInstanceCollection(
  [in]  const WCHAR                 *pszCategory,
  [in]  const WCHAR                 *pszSubCategory,
  [in]  BOOL                        fIncludeAllSubCategories,
  [out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);

Параметры

[in] pszCategory

Идентификатор перечисляемой категории. См . раздел Определения категорий.

[in] pszSubCategory

Идентификатор перечисляемой подкатегории. См. раздел Определения подкатегорий. Этот параметр может принимать значение NULL.

[in] fIncludeAllSubCategories

Если задано значение TRUE, этот метод рекурсивно перечисляет все подкатегории категории, указанной в pszCategory, возвращая коллекцию, содержащую экземпляры функций из всех подкатегорий pszCategory.

При значении FALSE этот метод ограничивается возвратом экземпляров функции в категории, указанной в pszCategory , и подкатегории, указанной в pszSubCategory.

[out] ppIFunctionInstanceCollection

Указатель на интерфейс IFunctionInstanceCollection , который получает коллекцию экземпляров функции, содержащую запрошенные экземпляры функции. Коллекция пуста, если не найдены соответствующие экземпляры функции.

Возвращаемое значение

Возможные возвращаемые значения включают, помимо прочего, следующие.

Возвращаемый код/значение Описание
S_OK
Метод завершился успешно.
E_INVALIDARG
Недопустимое значение pszCategory . Значение, возвращаемое в параметре ppIFunctionInstanceCollection , равно NULL.
E_OUTOFMEMORY
Метод не может выделить память, необходимую для выполнения этой операции.
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
Значение pszCategory или pszSubCategory неизвестно.
E_PENDING
Вызов был выполнен для поставщика, который возвращает результаты асинхронно.

Комментарии

Некоторые поставщики обнаружения функций возвращают результаты запроса с помощью интерфейса IFunctionDiscoveryNotification . GetInstanceCollection не находит экземпляры функций, возвращаемые таким образом, и завершится сбоем с E_PENDING. Клиентам рекомендуется использовать метод CreateInstanceQuery интерфейса IFunctionDiscovery для поиска экземпляров функций для таких поставщиков.

Если метод выполняется успешно, но не найдены экземпляры функции, соответствующие параметрам запроса, возвращается S_OK , а ppFunctionInstanceCollection указывает на пустую коллекцию (метод GetCount коллекции возвращает значение 0).

Запросы подкатегорий поддерживаются только для многоуровневых категорий и некоторых категорий поставщиков. Поставщик реестра, поставщик связей PnP-X и поставщик публикации поддерживают запросы подкатегорий. Настраиваемые поставщики могут быть явно разработаны для поддержки запросов подкатегорий. Для других поставщиков коллекции экземпляров функций можно фильтровать с помощью ограничений запросов. Список ограничений запросов см. в разделе Определения ограничений.

Примеры

Следующий код возвращает экземпляры функций, связанные с поставщиком SSDP в пространстве имен Microsoft.Networking.Devices.

hr = spDisco->GetInstanceCollection(FCTN_CATEGORY_NETWORKDEVICES,
                                   FCTN_SUBCAT_NETWORKDEVICES_SSDP, 
                                   FALSE, 
                                   &spFunctionInstanceCollection);


Ознакомьтесь с ограничениями интерфейса для IFunctionInstanceQuery , чтобы отфильтровать по нескольким интерфейсам одновременно или по поставщикам, которые не поддерживают запросы подкатегорий.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header functiondiscoveryapi.h
DLL FunDisc.dll

См. также раздел

IFunctionDiscovery