Метод IFunctionDiscoveryProvider::Query (functiondiscoveryprovider.h)

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

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

Синтаксис

HRESULT Query(
  [in]  IFunctionDiscoveryProviderQuery *pIFunctionDiscoveryProviderQuery,
  [out] IFunctionInstanceCollection     **ppIFunctionInstanceCollection
);

Параметры

[in] pIFunctionDiscoveryProviderQuery

Указатель на интерфейс IFunctionDiscoveryProviderQuery , содержащий параметры, определяющие условия запроса.

[out] ppIFunctionInstanceCollection

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

При реализации метода Query можно задать для этого параметра значение NULL , если поставщик поддерживает уведомления, то есть поставщик возвращает результаты асинхронно. Асинхронные результаты должны возвращаться с помощью интерфейса IFunctionDiscoveryNotification , переданного в метод Initialize поставщика.

Если клиентское приложение не реализовало уведомления, оно может передать параметр NULL .

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

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

Код возврата Описание
S_OK
Метод успешно завершен, и результаты возвращаются синхронно.
E_INVALIDARG
Параметр pIFunctionDiscoveryProviderQuery имеет значение NULL.
E_PENDING
Метод успешно завершен, и результаты возвращаются асинхронно.

Комментарии

Активный запрос завершается обнаружением функций с вызовом метода EndQuery . Обратите внимание, что EndQuery будет вызываться только в том случае, если клиент указал интерфейс IFunctionDiscoveryNotification для запроса. Если IFunctionDiscoveryNotification не предоставлен, поставщик должен считать запрос завершенным после завершения вызова запроса .

Клиент может повторно выполнить запрос в любое время после возврата предыдущего вызова запроса . Реализация Query должна иметь возможность возвращать IFunctionInstanceCollection для нового запроса. EndQuery будет вызываться только перед последующим вызовом запроса , когда клиент передал интерфейс IFunctionDiscoveryNotification , переданный методу Initialize поставщика.

Если запрос возвращает E_PENDING, поставщик должен вызвать метод OnEvent интерфейса IFunctionDiscoveryNotification с FD_EVENTID_SEARCHCOMPLETE , чтобы указать, что перечисление результатов завершено. Сбой отправки события FD_EVENTID_SEARCHCOMPLETE может привести к зависаю клиентов на неопределенный срок

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header functiondiscoveryprovider.h

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

IFunctionDiscoveryProvider