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

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

Создает определенный поставщиком COM-объект для экземпляра функции. Регистраторы поставщиков могут реализовать этот метод, чтобы предоставить дополнительные функциональные возможности через COM-объект.

Синтаксис

HRESULT InstanceQueryService(
  [in]  IFunctionInstance *pIFunctionInstance,
  [in]  INT_PTR           iProviderInstanceContext,
  [in]  REFGUID           guidService,
  [in]  REFIID            riid,
  [out] IUnknown          **ppIUnknown
);

Параметры

[in] pIFunctionInstance

Указатель на интерфейс IFunctionInstance .

[in] iProviderInstanceContext

Контекст, связанный с конкретным экземпляром функции.

[in] guidService

Уникальный идентификатор службы (sid). Это идентификатор службы, определенный модулем записи поставщика. Пример см. в разделе FunctionDiscoveryServiceIDs.h.

[in] riid

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

[out] ppIUnknown

Указатель, получающий указатель интерфейса службы. Вызывающий объект отвечает за вызов Release через этот указатель интерфейса, когда служба больше не нужна.

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

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

Код возврата Описание
S_OK
Метод завершился успешно.
E_NOINTERFACE
Поставщик реализует службу, определяемую guidService, но не реализует интерфейс, определяемый rrid.
E_OUTOFMEMORY
Метод не может выделить память, необходимую для выполнения этой операции.
E_NOTIMPL
Поставщик не реализует метод IFunctionInstance::QueryService , или идентификатор службы, заданный guidService , не соответствует идентификатору службы поставщика.

Комментарии

InstanceQueryService создает или обращается к реализации службы, идентифицируемой с помощью guidService, возвращая адрес интерфейса, заданного riid в аргументе ppv . Поставщики могут реализовать службу, и этот метод предоставляет поставщику механизм предоставления этой реализации, а не требует создания нового объекта для реализации службы.

Поставщик должен возвращать E_NOINTERFACE , если guidService не принадлежит этому поставщику или интерфейс riid не поддерживается. Поставщик должен возвращать E_NOTIMPL , если он просто не реализует этот метод или не реализует запрошенный идентификатор безопасности.

Любой поставщик, поддерживающий внедренные службы или устройства, должен реализовать службу SID_PNPXServiceCollection. Если служба SID_PNPXServiceCollection поддерживается, клиент может вызвать IFunctionInstance::QueryService для доступа к сведениям и метаданным, связанным с внедренными службами или устройствами. Например, поставщики PnP-X (т. е. поставщик SSDP и поставщик WSD) реализуют поддержку службы SID_PNPXServiceCollection. Не все поставщики реализуют поддержку служб SID_PNPXServiceCollection.

Требования

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

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

IFunctionDiscoveryProvider