CWbemProviderGlue::GetAllInstancesAsynch 方法 (wbemglue.h)

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

GetAllInstancesAsynch 方法检索特定类返回的实例列表。 此方法允许提供程序通过一次返回一个实例来异步响应。

语法

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

参数

pszClassName

应为其返回实例列表的类的名称。

pRequester

pCallback 指向的回调函数的“This”指针。

pCallback

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

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

其中,Classname 是派生自类 Provider 的类的名称。 它是此类的实例,它是 pRequester 定义的“this”指针。 调用此函数可返回 pszClassName 指定的提供程序支持的每个实例。

pszNamespace

pszClassName 指定的提供程序的命名空间。 此参数可以为 NULL ,以指示默认命名空间,即 root\cimv2。

pMethodContext

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

pUserData

指向传递给 pCallback 指向的函数的用户定义数据的指针。

返回值

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

注解

GetAllInstancesAsynch 方法执行的功能与 GetAllInstances 几乎相同。 但是,每次从提供程序检索实例时,提供程序都会将实例传递给 pCallback 指定的函数,而不是返回任意较大的实例数组。 这允许提供程序使用更少的内存,并更快地开始将实例返回到客户端。

注意 由于对接收器的回调可能不会在客户端所需的相同身份验证级别返回,因此建议使用半同步而不是异步通信。 有关详细信息,请参阅调用方法
 
此方法在语义上等效于查询 SELECT * FROM pszBaseClassName WHERE __Class = pszBaseClassName

要求

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