性能数据格式

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

performance data structure

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

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

structure of performance object that does not support multiple instances

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

structure of a performance object that supports two instances

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