性能数据格式

RegQueryValueEx 函数检索的数据的格式以固定长度标头结构开头,PERF_DATA_BLOCKPERF_DATA_BLOCK结构描述系统和性能数据。 PERF_DATA_BLOCK结构后跟可变数量的可变长度对象数据项。 每个对象项的标头都包含列表中下一个对象项的偏移量。 下图显示了基本性能数据结构。

性能数据结构

对象数据项有两种格式:一种支持多个实例,另一种不支持多个实例。

每个对象数据项块都包含一个 PERF_OBJECT_TYPE 结构,该结构描述对象的性能数据。 PERF_OBJECT_TYPE 结构后跟PERF_COUNTER_DEFINITION结构列表,每个针对对象定义的计数器各一个。 对于只有一个实例的对象, PERF_COUNTER_DEFINITION 结构列表后跟单个 PERF_COUNTER_BLOCK 结构,后跟计数器数据。 每个 PERF_COUNTER_DEFINITION 结构都包含从 PERF_COUNTER_BLOCK 结构开始到相应计数器数据的偏移量。 下图显示了不支持多个实例的性能对象的结构。

不支持多个实例的性能对象的结构

对于支持多个实例的对象类型, PERF_COUNTER_DEFINITION 结构列表后跟实例信息块的列表, (每个实例) 一个。 每个实例信息块都包含 PERF_INSTANCE_DEFINITION 结构、实例名称和 PERF_COUNTER_BLOCK 结构。 下图显示了支持两个实例的性能对象的结构。

支持两个实例的性能对象的结构

有关使用偏移量的示例,请参阅 显示对象、实例和计数器名称