通过


IFunctionDiscoveryProvider::Query 方法 (functiondiscoveryprovider.h)

[函数发现可用于“要求”部分中指定的操作系统。 在后续版本中,它可能已更改或不可用。]

检索满足指定约束的函数实例的集合。

语法

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

参数

[in] pIFunctionDiscoveryProviderQuery

指向 IFunctionDiscoveryProviderQuery 接口的指针,该接口包含定义查询条件的参数。

[out] ppIFunctionInstanceCollection

指向 IFunctionInstanceCollection 接口的指针,提供程序应使用该指针来同步返回函数实例以响应给定查询。

实现 Query 方法时,如果提供程序支持通知,则可以将此参数设置为 NULL ,即提供程序异步返回结果。 应使用传递给提供程序的 Initialize 方法的 IFunctionDiscoveryNotification 接口返回异步结果。

如果客户端应用程序尚未实现通知,它可能会传递 NULL 参数。

返回值

可能的返回值包括但不限于以下内容。

返回代码 说明
S_OK
方法成功完成,结果将同步返回。
E_INVALIDARG
pIFunctionDiscoveryProviderQuery 参数为 NULL
E_PENDING
方法成功完成,结果将异步返回。

注解

活动查询通过调用 EndQuery 方法由函数发现终止。 请注意,仅当客户端为查询指定了 IFunctionDiscoveryNotification 接口时,才会调用 EndQuery。 如果未提供 IFunctionDiscoveryNotification ,则必须在查询调用完成后,将 查询 视为由提供程序结束。

在返回上一个查询调用后,客户端可以随时重新执行 查询Query 的实现必须能够返回新查询的 IFunctionInstanceCollection。 只有在客户端传递传递给提供程序的 Initialize 方法的 IFunctionDiscoveryNotification 接口时,才会在后续查询调用之前调用 EndQuery

如果 Query 返回E_PENDING,则提供程序必须使用 FD_EVENTID_SEARCHCOMPLETE 调用 IFunctionDiscoveryNotification 接口的 OnEvent 方法,以指示结果枚举已完成。 未能发送 FD_EVENTID_SEARCHCOMPLETE 事件可能会导致客户端无限期挂起

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 functiondiscoveryprovider.h

另请参阅

IFunctionDiscoveryProvider