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