计数器复杂类型

定义计数器。

<xs:complexType name="counter">
    <xs:choice
        minOccurs="0"
        maxOccurs="1"
    >
        <xs:element name="counterAttributes"
            type="man:counterAttributes"
        >
            <xs:key name="uniqueCounterAttributeName">
                <xs:selector
                    xpath="./man:counterAttribute"
                 />
                <xs:field
                    xpath="@name"
                 />
            </xs:key>
        </xs:element>
    </xs:choice>
    <xs:attribute name="symbol"
        type="man:CSymbolType"
        use="optional"
     />
    <xs:attribute name="id"
        type="man:UInt32Type"
        use="required"
     />
    <xs:attribute name="uri"
        type="xs:anyURI"
        use="required"
     />
    <xs:attribute name="name"
        use="optional"
    >
        <xs:simpleType>
            <xs:restriction
                base="xs:string"
            >
                <xs:maxLength
                    value="1023"
                 />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="description"
        type="xs:string"
        use="optional"
     />
    <xs:attribute name="type"
        use="required"
    >
        <xs:simpleType>
            <xs:restriction
                base="xs:string"
            >
                <xs:enumeration
                    value="perf_counter_counter"
                 />
                <xs:enumeration
                    value="perf_counter_timer"
                 />
                <xs:enumeration
                    value="perf_counter_queuelen_type"
                 />
                <xs:enumeration
                    value="perf_counter_large_queuelen_type"
                 />
                <xs:enumeration
                    value="perf_counter_100ns_queuelen_type"
                 />
                <xs:enumeration
                    value="perf_counter_obj_time_queuelen_type"
                 />
                <xs:enumeration
                    value="perf_counter_bulk_count"
                 />
                <xs:enumeration
                    value="perf_counter_text"
                 />
                <xs:enumeration
                    value="perf_counter_rawcount"
                 />
                <xs:enumeration
                    value="perf_counter_large_rawcount"
                 />
                <xs:enumeration
                    value="perf_counter_rawcount_hex"
                 />
                <xs:enumeration
                    value="perf_counter_large_rawcount_hex"
                 />
                <xs:enumeration
                    value="perf_sample_fraction"
                 />
                <xs:enumeration
                    value="perf_sample_counter"
                 />
                <xs:enumeration
                    value="perf_counter_timer_inv"
                 />
                <xs:enumeration
                    value="perf_sample_base"
                 />
                <xs:enumeration
                    value="perf_average_timer"
                 />
                <xs:enumeration
                    value="perf_average_base"
                 />
                <xs:enumeration
                    value="perf_average_bulk"
                 />
                <xs:enumeration
                    value="perf_obj_time_timer"
                 />
                <xs:enumeration
                    value="perf_100nsec_timer"
                 />
                <xs:enumeration
                    value="perf_100nsec_timer_inv"
                 />
                <xs:enumeration
                    value="perf_counter_multi_timer"
                 />
                <xs:enumeration
                    value="perf_counter_multi_timer_inv"
                 />
                <xs:enumeration
                    value="perf_counter_multi_base"
                 />
                <xs:enumeration
                    value="perf_100nsec_multi_timer"
                 />
                <xs:enumeration
                    value="perf_100nsec_multi_timer_inv"
                 />
                <xs:enumeration
                    value="perf_raw_fraction"
                 />
                <xs:enumeration
                    value="perf_large_raw_fraction"
                 />
                <xs:enumeration
                    value="perf_raw_base"
                 />
                <xs:enumeration
                    value="perf_large_raw_base"
                 />
                <xs:enumeration
                    value="perf_elapsed_time"
                 />
                <xs:enumeration
                    value="perf_counter_delta"
                 />
                <xs:enumeration
                    value="perf_counter_large_delta"
                 />
                <xs:enumeration
                    value="perf_precision_system_timer"
                 />
                <xs:enumeration
                    value="perf_precision_100ns_timer"
                 />
                <xs:enumeration
                    value="perf_precision_object_timer"
                 />
                <xs:enumeration
                    value="perf_counter_composite"
                 />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="baseID"
        type="man:UInt32Type"
        use="optional"
     />
    <xs:attribute name="detailLevel"
        use="required"
    >
        <xs:simpleType>
            <xs:restriction
                base="xs:string"
            >
                <xs:enumeration
                    value="standard"
                 />
                <xs:enumeration
                    value="advanced"
                 />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="defaultScale"
        use="optional"
        default="0"
    >
        <xs:simpleType>
            <xs:restriction
                base="xs:integer"
            >
                <xs:minInclusive
                    value="-10"
                 />
                <xs:maxInclusive
                    value="10"
                 />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="aggregate"
        use="optional"
    >
        <xs:simpleType>
            <xs:restriction
                base="xs:string"
            >
                <xs:enumeration
                    value="sum"
                 />
                <xs:enumeration
                    value="avg"
                 />
                <xs:enumeration
                    value="max"
                 />
                <xs:enumeration
                    value="min"
                 />
                <xs:enumeration
                    value="undefined"
                 />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="perfTimeID"
        type="man:UInt32Type"
        use="optional"
     />
    <xs:attribute name="perfFreqID"
        type="man:UInt32Type"
        use="optional"
     />
    <xs:attribute name="multiCounterID"
        type="man:UInt32Type"
        use="optional"
     />
    <xs:attribute name="struct"
        type="man:CSymbolType"
        use="optional"
     />
    <xs:attribute name="field"
        type="man:CSymbolType"
        use="optional"
     />
</xs:complexType>

子元素

元素 类型 说明
counterAttributes man:counterAttributes 列出指定计数器数据在使用者应用程序中的显示方式的唯一属性。

属性

名称 类型 说明
aggregate 如果 counterSet实例属性为 globalAggregate、multipleAggregate 或 globalAggregateHistory,则应用的聚合函数。 以下是可以应用的可能聚合函数:
麦克斯
返回最大计数器值。
min
返回最小计数器值。
Avg
返回平均计数器值。
返回计数器值之和。
定义
不要聚合此计数器。
baseID man:UInt32Type 同一计数器集中另一个计数器的标识符,其值用于计算此计数器的值。 以下计数器类型需要基计数器:
PERF_AVERAGE_TIMER
需要PERF_AVERAGE_BASE基本计数器。
PERF_AVERAGE_BULK
需要PERF_AVERAGE_BASE基本计数器。
PERF_COUNTER_MULTI_TIMER_INV
需要PERF_COUNTER_MULTI_BASE基本计数器。
PERF_LARGE_RAW_FRACTION
需要PERF_LARGE_RAW_BASE基本计数器。
PERF_PRECISION_100NS_TIMER
需要PERF_LARGE_RAW_BASE基本计数器。
PERF_RAW_FRACTION
需要PERF_RAW_BASE基本计数器。
PERF_SAMPLE_FRACTION
需要PERF_SAMPLE_BASE基本计数器。
defaultScale 应用于计数器值的比例因子 (因子 * 计数器值) 。 如果未应用缩放,则默认值为零。 有效值范围为 10 到 10 (0.0000000001 到 10000000000) 。 如果此值为零,则刻度值为 1;如果此值为 1,则缩放值为 10;如果此值为 1,则缩放值为 .10;等等。
description xs:string 计数器的简短说明。 如果计数器包含 noDisplay 属性,则无需指定此属性。
detailLevel 指定计数器详细信息的目标受众。 下面是可能的值:
标准
显示典型用户可理解的计数器的详细信息。
先进
显示只有高级用户才能理解的计数器的详细信息。
Field — 字段 man:CSymbolType 结构中包含计数器值的字段的名称。 用户模式提供程序不允许使用此属性。
id man:UInt32Type 标识计数器集中的计数器的唯一数字。
multiCounterID man:UInt32Type 同一计数器集中另一个计数器的标识符,其乘数值用于计算此计数器的值。 以下计数器类型需要乘数值。 引用的计数器的类型必须为 PERF_COUNTER_RAWCOUNT。
  • PERF_COUNTER_MULTI_TIMER
  • PERF_COUNTER_MULTI_TIMER_INV
  • PERF_100NSEC_MULTI_TIMER
  • PERF_100NSEC_MULTI_TIMER_INV
name 计数器的名称。 名称必须唯一且少于 1,024 个字符。 该名称区分大小写。 如果计数器包含 noDisplay 属性,则无需指定此属性。
perfFreqID man:UInt32Type 同一计数器集中另一个计数器的标识符,其频率值用于计算此计数器的值。 以下计数器类型需要频率。 PERF_COUNTER_LARGE_RAWCOUNT计数器类型包含时间戳值。
  • PERF_COUNTER_OBJECT_TIME_QUEUELEN_TYPE
  • PERF_ELAPSED_TIME
  • PERF_OBJ_TIME_TIMER
  • PERF_PRECISION_OBJECT_TIMER
perfTimeID man:UInt32Type 同一计数器集中另一个计数器的标识符,其时间戳值用于计算此计数器的值。 以下计数器类型需要时间戳。 PERF_COUNTER_LARGE_RAWCOUNT计数器类型包含时间戳值。
  • PERF_COUNTER_OBJECT_TIME_QUEUELEN_TYPE
  • PERF_ELAPSED_TIME
  • PERF_OBJ_TIME_TIMER
  • PERF_PRECISION_OBJECT_TIMER
struct man:CSymbolType 包含此计数器值的结构元素的名称。 用户模式提供程序不允许使用此属性。
符号 man:CSymbolType 标识计数器的符号名称。 CTRPP 工具创建一个常量,在调用需要计数器标识符的函数时可以使用该常量 (例如 PerfIncrementULongCounterValue) 。 常量的名称是符号名称。
type 计数器类型的名称。 有关可能的值,请参阅上面的语法块。 有关每种类型的详细信息,请参阅 Windows 2003 部署指南中的 计数器类型 。 名称区分大小写,请使用小写。
uri xs:anyURI 唯一的统一资源标识符,允许用户从任何位置检索计数器值。

备注

若要提供向后兼容性,计数器集中的每个计数器应指定相同的 perfFreqIDperfTimeID 值。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]