CWbemProviderGlue::GetInstancesByQueryAsynch 方法 (wbemglue.h)

[CWbemProviderGlue 类是 WMI 提供程序框架的一部分,现在视为处于最终状态,对于影响这些库的非安全性相关问题,将不会提供进一步的开发、增强或更新。 所有新开发均应使用 MI API。]

GetInstancesByQueryAsynch 方法检索特定提供程序支持的与特定查询匹配的实例列表。 此方法允许提供程序通过一次返回一个实例来异步响应。

语法

HRESULT GetInstancesByQueryAsynch(
  LPCWSTR                    query,
  Provider                   *pRequester,
  LPProviderInstanceCallback pCallback,
  LPCWSTR                    pszNamespace,
  MethodContext              *pMethodContext,
  void                       *pUserData
);

参数

query

要执行的查询。

pRequester

框架提供程序提供的类实例的指针。 此“this”指针将传递给 pCallback 函数,以防回调函数需要它。

pCallback

指向具有此原型的静态函数的指针。

static HRESULT WINAPI Classname::FunctionName(Provider *pProvider,
                                              CInstance *pInstance,
                                              MethodContext *pMethodContext,
                                              void *pUserData );

其中,Classname 是派生自 提供程序类的类的名称。 它是此类的一个实例,它是 pRequester 定义的“this”指针。

pszNamespace

查询的命名空间。 如果 为 NULL,则使用默认命名空间 root\cimv2。

pMethodContext

指向当前上下文的指针。 必须提供上下文以防止死锁。 使用由 Provider::EnumerateInstancesProvider::ExecQuery 传入提供程序的上下文,或使用 CInstance::GetMethodContext 从实例获取上下文。 此参数不得为 NULL

pUserData

指向传递给 pCallback 指向的函数的用户定义数据的指针。 如果 为 NULL,则没有用户定义的数据。

返回值

如果操作成功,则该方法返回 WBEM_S_NO_ERRORWBEM_E_OUT_OF_MEMORY 如果操作因内存不足而失败,则返回任何其他 HRESULT 错误代码。

注解

GetInstancesByQueryAsynch 方法允许框架提供程序访问来自其他提供程序的数据,而无需进行 WMI API 调用。 框架提供程序将查询传递给 GetInstancesByQueryAsynch,这将返回相应的实例。

出于性能原因,调用此函数时,请仅指定 (所需的属性,例如,指定 SELECT 名称 而不是 SELECT *) 。

由于对接收器的回调可能不会在客户端要求的相同身份验证级别返回,因此建议使用半同步通信而不是异步通信。 如果需要异步通信,请参阅 调用方法

有关半同步使用方法的详细信息,请参阅 CWbemProviderGlue::GetInstancesByQuery调用方法

要求

   
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 wbemglue.h (包括 FwCommon.h)
Library FrameDyn.lib
DLL FrameDynOS.dll;FrameDyn.dll