指定计数器路径

系统使用计数器收集性能数据。 每个计数器通过其名称和路径或位置进行唯一标识。 计数器路径的语法为:

\\Computer\PerfObject(ParentInstance/ObjectInstance#InstanceIndex)\Counter

Computer 元素指定要从中查询性能数据的计算机的名称或 IP 地址。 如果计数器位于本地计算机上,则计算机名称是可选的。

PerfObject 元素指定要查询的性能对象。 性能对象可以是物理组件(如处理器、磁盘和内存),也可以是系统对象(如进程和线程)。 每个系统对象都与计算机中的一个功能元素相关,并为其分配了一组标准计数器。 每台计算机可能安装了一组不同的性能对象和计数器,因为应用程序可以安装自己的性能对象和计数器。 有关计算机上安装的性能对象和计数器的列表,请参阅计算机上的性能工具中的 “添加计数器 ”对话框。 这些对象也列在 PDH 浏览对话框中, (请参阅 浏览计数器) 。 有关系统性能对象和计数器的列表,请参阅 计数器(按对象)。

如果对象的多个实例可以存在,则路径中包含 ParentInstance、ObjectInstance 和 InstanceIndex。 例如,进程和线程是多个实例对象,因为多个进程或线程可以同时运行。 如果对象可以有多个实例,则计数器路径必须指定对象实例。

实例相关元素的格式取决于对象类型。 如果对象具有简单实例,则格式仅为括号中括起来的实例名称。 例如:

(Explorer)

如果此对象的实例还需要父实例名称,则父实例名称必须先于对象实例,并用正斜杠字符分隔。 例如,线程属于进程。 如果查询线程对象,还必须指定它所属的进程,如以下示例所示:

(Explorer/0)

如果对象具有多个具有相同名称字符串的实例,则可以通过指定以井号为前缀的实例索引来按顺序编制索引。 实例索引从 0 开始。 如果要查询第一个实例,请不要包含 #0,只需指定实例名称。 若要指定第二个实例,请使用 #1;若要指定第三个实例,请使用 #2;等等。 例如:

(Explorer/0#1)

Counter 元素指定要查询给定性能对象的性能计数器。

PDH 在计数器路径中使用以下特殊字符。 提供程序不应在名称中使用这些字符。 如果提供程序使用这些特殊字符,则 PDH 无法分析完整的计数器路径以获取计数器和实例名称。

字符 说明
\ 计算机、对象和计数器的泛型分隔符。
( 实例名称的开头。
) 实例名称的结尾。
/ 分隔实例和父实例。
#n 标识同名实例的特定匹配项。
* 通配符。

 

以下示例显示了计数器路径的可能格式:

  • \\computer\object (parent/instance#index) \counter
  • \\computer\object (parent/instance) \counter
  • \\computer\object (instance#index) \counter
  • \\computer\object (实例) \counter
  • \\computer\object\counter
  • \object (parent/instance#index) \counter
  • \object (parent/instance) \counter
  • \object (instance#index) \counter
  • \object (实例) \counter
  • \object\counter

使用通配符

计数器路径只能包含实例名称的通配符,如以下示例所示。

\Process(*)\% Processor Time

若要将通配符扩展到包含在计算机上或日志文件中找到的实例的计数器路径列表,请调用 PdhExpandWildCardPath