设为首页 加入收藏

TOP

15.2.2 使用性能计数器对象
2013-10-07 14:38:36 来源: 作者: 【 】 浏览:57
Tags:15.2.2 使用 性能 计数器 对象

15.2.2  使用性能计数器对象

下面介绍如何使用性能计数器,其使用的基本步骤如下所示。

PdhOpenQuery:打开计数器,并为其句柄分配空间。

PdhAddCounter:添加感兴趣的计数器。

PdhCollectQueryData:收集数据。

PdhGetFormattedCounterValue:获取计数器的数值。

PdhCloseQuery:关闭计数器,释放计数器句柄空间。

以上函数一般包含在pdh.h头文件和库文件Pdh.lib中,下面将详细地介绍这些函数。

(1)PdhOpenQuery()函数用于打开计数器,为计数器句柄分配空间,其原型如下所示。

  1. PDH_STATUS PdhOpenQuery(  
  2. LPCTSTR szDataSource,  
  3. DWORD_PTR dwUserData,  
  4. HQUERY *phQuery  
  5. );  

代码中的szDataSource一般设置为NULL值;dwUserData一般设置为NULL值;phQuery用于接收指向计数器的句柄。该函数可以成功地返回ERROR_SUCCESS。

(2)PdhAddCounter()函数用于添加感兴趣的计数器,其原型如下:

  1. PDH_STATUS PdhAddCounter(  
  2. HQUERY hQuery  
  3. LPCTSTR szFullCounterPath,  
  4. DWORD_PTR dwUserData  
  5. HCOUNTER *phCounter  
  6. )  

代码中的hQuery是由PdhOpenQuery获取的计数器对象句柄。szFullCounterPath由计数器对象、实例及计数器组成的字符串,比如\\Processor(0)\\%Processor Time的作用是获取当前计算机的第一个处理器占用率,其组成为计数器对象Processor、实例0、计数器%Processor Time。dwUserData是用户自定义数据,一般设置为NULL值;phCounter用于接收创建的计数器句柄。

(3)PdhCollectQueryData()函数用于收集感兴趣的数据,其原型如下:

  1. PDH_STATUS PdhCollectQueryData(  
  2.     HQUERY hQuery  
  3. );  

代码中的hQuery是由PdhOpenQuery获取的计数器对象句柄。

(4)PdhGetFormattedCounterValue()函数用于获取计数器的数值,其原型如下:

  1. PDH_STATUS PdhGetFormattedCounterValue(  
  2.     HCOUNTER hCounter,  
  3.     DWORD dwFormat,  
  4.     LPDWORD lpdwType,  
  5.     PPDH_FMT_COUNTERVALUE pValue  
  6. );  

代码中的hCounter是由PdhAddCounter获取的计数器句柄;dwFormat可以取的值有PDH_FMT_DOUBLE、PDH_FMT_LARGE、PDH_FMT_LONG;lpdwType用于接收缓冲的计数器类型;pValue属于PDH_FMT_COUNTERVALUE结构类型,用于存放获取到的计数值。该函数可以成功地返回ERROR_SUCCESS。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇13.11.2 发送数据操作的控制功能.. 下一篇13.11.1 发送数据控制功能的实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: