Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция обнаружения доступна для использования в операционных системах, указанных в разделе Требования. Он может быть изменен или недоступен в последующих версиях.]
Возвращает указанную коллекцию экземпляров функции на основе категории и подкатегории.
Синтаксис
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 , который получает коллекцию экземпляров функции, содержащую запрошенные экземпляры функции. Коллекция пуста, если не найдены соответствующие экземпляры функции.
Возвращаемое значение
Возможные возвращаемые значения включают, помимо прочего, следующие.
| Возвращаемый код/значение | Описание |
|---|---|
|
Метод завершился успешно. |
|
Недопустимое значение pszCategory . Значение, возвращаемое в параметре ppIFunctionInstanceCollection , равно NULL. |
|
Метод не может выделить память, необходимую для выполнения этой операции. |
|
Значение pszCategory или pszSubCategory неизвестно. |
|
Вызов был выполнен для поставщика, который возвращает результаты асинхронно. |
Комментарии
Некоторые поставщики обнаружения функций возвращают результаты запроса с помощью интерфейса 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 |