[函数发现可用于“要求”部分中指定的操作系统。 它在后续版本中可能已更改或不可用。]
执行 IFunctionDiscovery::CreateInstanceQuery 定义的查询。
语法
HRESULT Execute(
[out] IFunctionInstance **ppIFunctionInstance
);
参数
[out] ppIFunctionInstance
指向接收请求的函数实例的 IFunctionInstance 接口指针的指针。
返回值
可能的返回值包括但不限于以下值。
返回代码/值 | 说明 |
---|---|
|
该方法已成功完成。 |
|
ppIFunctionInstance 参数为 NULL。 |
|
方法无法分配执行此操作所需的内存。 |
|
提供程序返回的结果将通过异步通知提供。 |
|
此计算机上不存在由指定 ID 表示的函数实例。 |
|
无法返回函数实例,因为与函数实例对应的键已被另一个进程删除。 如果在进行查询处理时删除了某个键,则注册表提供程序将返回此错误。 |
|
无法返回函数实例,因为找不到与函数实例对应的键。 当提供程序找不到实例查询的匹配实例时,注册表提供程序将返回此错误。 |
预定义查询是分层 类别的查询。 执行预定义查询时,返回函数实例的每个提供程序也会返回 HRESULT 值。 提供程序 HRESULT 值是聚合的, Execute 方法返回的值反映了这些聚合结果。 结果聚合如下:
- 如果所有提供程序都返回S_OK, 则 Execute 返回S_OK。
- 如果至少有一个提供程序返回E_PENDING,而所有其他提供程序返回S_OK或E_PENDING, 则 Execute 返回E_PENDING。
- 如果所有提供程序都返回错误值 (即S_OK或E_PENDING) 以外的值, 则 Execute 将返回上次查询的网络提供程序返回的错误值。 此外,如果向 IFunctionDiscovery::CreateInstanceCollectionQuery 提供了客户端的 IFunctionDiscoveryNotification 回调例程,则会为每个提供程序发送 OnError 通知。 每个 OnError 通知都包含提供程序返回的 HRESULT。
- 如果至少有一个提供程序返回错误值,而所有其他提供程序返回S_OK, 则 Execute 将返回S_OK。 如上文所述发送 OnError 通知 () 。
- 如果至少有一个提供程序返回错误值,并且至少有一个提供程序返回E_PENDING, 则 Execute 将返回E_PENDING。 如上文所述发送 OnError 通知 () 。
注解
客户端程序必须调用此方法才能从查询对象中检索数据。 调用此方法时,将执行以下操作:
- 检索函数实例。
- 如果将客户端程序的 IFunctionDiscoveryNotification 回调例程的地址提供给 IFunctionDiscovery::CreateInstanceQuery,则启动更新通知机制。
如果对同一查询对象调用了 两次 Execute ,则第一个查询在执行第二个查询之前终止。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | functiondiscoveryapi.h |
DLL | FunDisc.dll |