勇芳软件工作室.汉化:  Windows Management Instrumentation > COM API for WMI > Interfaces > IWbemHiPerfProvider >

GetObjects Method

Previous pageReturn to chapter overviewNext page

描述

 

IWbemHiPerfProvider.GetObjects方法在提供的数组中插入对象的非关键属性。WMI调用GetObjects以响应IWbemServices.GetObject调用。如果提供商未实施GetObjects,WMI将尝试通过致电IWbemHiPerfProvider.CreateRefreshableObject方法来服务GetObject请求。

 

注意 如果提供程序不实现此方法,则必须返回WBEM_E_PROVIDER_NOT_CAPABLE。

 

C++ 语法

 

HRESULT GetObjects(

[in]       IWbemServices *pNamespace,

[in]       long lNumObjects,

[in, out]  IWbemObjectAccess *apObj,

[in]       long lFlags,

[in]       IWbemContext *pCtx

);

 

PowerBASIC 语法

 

METHOD GetObjects ( _

BYVAL pNamespace AS IWbemServices, _

BYVAL lNumObjects AS LONG, _

BYREF apObj AS IWbemObjectAccess, _

BYVAL lFlags AS LONG, _

BYVAL pCtx AS IWbemContext _

) AS LONG

 

参数

 

pNamespace

 

指向Windows Management的IWbemServices指针,可以为提供商提供的任何请求提供服务。如果这个指针在执行过程中要调用回Windows Management,则应该调用AddRef这个指针。

 

lNumObjects

 

整数,其中包含您要检索的对象数。

 

apObj

 

指向IWbemObjectAccess个数组的对象。GetObjects方法将每个对象的关键属性插入到此数组中。

 

lFlags

 

保留。该参数必须为0。

 

pCtx

 

通常为NULL;否则,指向一个或多个动态类提供者所需的IWbemContext对象的指针。必须在特定的提供者文档中指定上下文对象中的值。

 

返回值

 

此方法返回一个HRESULT,指示方法调用的状态。下表列出了HRESULT中包含的值。

 

退货代码

描述

WBEM_S_NO_ERROR

该方法成功。

WBEM_E_PROVIDER_NOT_CAPABLE

提供者不实现此方法。

WBEM_E_NOT_FOUND

找不到请求的实例。

WBEM_E_ACCESS_DENIED

当前用户没有检索指定实例的权限。

 

示例代码

 

以下代码示例介绍如何实现GetObjects.

 

HRESULT CMyHiPerfProvider::GetObjects(

/* [in] */IWbemServices *pNamespace,

/* [in] */  long lNumObjects,

/* [in,out] */IWbemObjectAccess **apObj,

/* [in] */long lFlags,

/* [in] */IWbemContext *pCtx

)

{

 

for ( long i = 0; i < lNumObjects; i++ )

{

    // Validate the instance (that is, ensure

    // the path is good); if it fails, return

    // the error.

 

    // For example, create a method that validates

    // the IWbemObjectAccess instance and returns

    // false if validation failed.

    /*if ( !ValidateInstance( apObj[i] ) )

        return WBEM_E_NOT_FOUND;*/

 

    // Fill out the instance.

    // For example, create a method that assigns

    // a value to the IWbemObjectAccess instance.

    /*FillInstance( apObj[i] );*/

}

 

return WBEM_S_NO_ERROR;

}

 

备注

 

所请求的对象将填充其关键属性。

 

要求

 

客户

需要Windows Vista,Windows XP或Windows 2000 Professional。

服务器

需要Windows Server 2008,Windows Server 2003或Windows 2000 Server。

在Wbemprov.inc中声明。

DLL

需要Wmiprvsd.dll。