[函数发现可用于“要求”部分中指定的操作系统。 在后续版本中,它可能已更改或不可用。]
检索满足指定约束的函数实例的集合。
语法
HRESULT Query(
[in] IFunctionDiscoveryProviderQuery *pIFunctionDiscoveryProviderQuery,
[out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);
参数
[in] pIFunctionDiscoveryProviderQuery
指向 IFunctionDiscoveryProviderQuery 接口的指针,该接口包含定义查询条件的参数。
[out] ppIFunctionInstanceCollection
指向 IFunctionInstanceCollection 接口的指针,提供程序应使用该指针来同步返回函数实例以响应给定查询。
实现 Query 方法时,如果提供程序支持通知,则可以将此参数设置为 NULL ,即提供程序异步返回结果。 应使用传递给提供程序的 Initialize 方法的 IFunctionDiscoveryNotification 接口返回异步结果。
如果客户端应用程序尚未实现通知,它可能会传递 NULL 参数。
返回值
可能的返回值包括但不限于以下内容。
| 返回代码 | 说明 |
|---|---|
|
方法成功完成,结果将同步返回。 |
|
pIFunctionDiscoveryProviderQuery 参数为 NULL。 |
|
方法成功完成,结果将异步返回。 |
注解
活动查询通过调用 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 |