提供程序复杂类型

定义提供程序及其提供的计数器。

<xs:complexType name="provider">
    <xs:choice
        minOccurs="0"
        maxOccurs="unbounded"
    >
        <xs:element name="counterSet"
            type="man:counterSet"
        >
            <xs:key name="uniqueCounterID">
                <xs:selector
                    xpath="./man:counter"
                 />
                <xs:field
                    xpath="@id"
                 />
            </xs:key>
            <xs:unique name="uniqueCounterName">
                <xs:selector
                    xpath="./man:counter"
                 />
                <xs:field
                    xpath="@name"
                 />
            </xs:unique>
            <xs:keyref name="existBaseID">
                <xs:selector
                    xpath="./man:counter"
                 />
                <xs:field
                    xpath="@baseID"
                 />
            </xs:keyref>
            <xs:keyref name="existPerfTimeID">
                <xs:selector
                    xpath="./man:counter"
                 />
                <xs:field
                    xpath="@perfTimeID"
                 />
            </xs:keyref>
            <xs:keyref name="existPerfFreqID">
                <xs:selector
                    xpath="./man:counter"
                 />
                <xs:field
                    xpath="@perfFreqID"
                 />
            </xs:keyref>
            <xs:keyref name="existMultiCounterID">
                <xs:selector
                    xpath="./man:counter"
                 />
                <xs:field
                    xpath="@multiCounterID"
                 />
            </xs:keyref>
            <xs:key name="uniqueStructNames">
                <xs:selector
                    xpath="./man:structs/man:struct"
                 />
                <xs:field
                    xpath="@name"
                 />
            </xs:key>
            <xs:keyref name="existCounterName">
                <xs:selector
                    xpath="./man:counter"
                 />
                <xs:field
                    xpath="@struct"
                 />
            </xs:keyref>
        </xs:element>
    </xs:choice>
    <xs:attribute name="symbol"
        type="man:CSymbolType"
        use="optional"
     />
    <xs:attribute name="callback"
        use="optional"
        default="default"
    >
        <xs:simpleType>
            <xs:restriction
                base="xs:string"
            >
                <xs:enumeration
                    value="custom"
                 />
                <xs:enumeration
                    value="default"
                 />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="providerGuid"
        type="man:GUIDType"
        use="required"
     />
    <xs:attribute name="applicationIdentity"
        type="xs:string"
        use="required"
     />
    <xs:attribute name="providerType"
        use="optional"
        default="userMode"
    >
        <xs:simpleType>
            <xs:restriction
                base="xs:string"
            >
                <xs:enumeration
                    value="userMode"
                 />
                <xs:enumeration
                    value="kernelMode"
                 />
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="providerName"
        type="xs:string"
        use="optional"
        default="Counters"
     />
    <xs:attribute name="resourceBase"
        type="man:UInt32Type"
        use="optional"
     />
</xs:complexType>

子元素

元素 类型 说明
counterSet man:counterSet 标识包含一个或多个逻辑相关的计数器的计数器集。

属性

名称 类型 说明
applicationIdentity xs:string 包含本地化资源字符串的二进制文件的名称(.exe或.dll文件 (不包含二进制) 的路径。
Lodctr.exe实用工具使用可选 [path] 参数中的路径来搜索二进制文件。 例如, lodctr [/m:manifest [path]]。 如果不包含 [path] 参数,Lodctr.exe搜索包含清单的文件夹。
回调 (callback) 此属性指示你想要在使用者执行某些操作时接收通知。
如果包含此属性,CTRPP 工具将使用备用 CounterInitialize 函数签名,该签名用于传入实现 ControlCallback 回调函数的函数的名称。
作为指定此属性的替代方法,可以使用 -NotificationCallbackCTRPP 参数。
Windows Vista: 此属性的唯一有效值为“custom”。 CTRPP 实用工具为 ControlCallback 回调函数生成模板。 模板包含在 CTRPP 生成的 .c 文件中。

providerGuid man:GUIDType 唯一标识清单中的提供程序的字符串 GUID。 GUID 在清单中必须是唯一的。
仅当应用程序版本更改时,才需要提供新的 GUID, (如果支持) 并行安装。
ProviderName xs:string 用于创建 WMI 的名称Win32_PerfRawData类名。 如果未指定名称,“Counters”将用作类的名称。
providerType 标识提供程序是用户模式提供程序、内核模式提供程序还是驱动程序提供程序。 可能的值如下所示。
术语 说明
userMode
为用户模式组件(例如应用程序、DLL 或用户模式驱动程序)指定此模式。 用户模式组件的典型扩展是.exe或.dll。 这是默认值。
内核
为内核模式组件(如 WDM 或 WDF 驱动程序)指定此模式。 内核模式组件的典型扩展是.sys。
Windows Vista 和 Windows Server 2008: 在 Windows 7 和 Windows Server 2008 R2 之前,不支持此值。

resourceBase man:UInt32Type

定义 CTRPP 用于生成资源标识符的起始资源索引值。

符号 man:CSymbolType

标识提供程序的符号名称。 CTRPP 工具会创建一个 HANDLE 变量,在调用需要提供程序句柄的函数时可以使用该变量, (例如 PerfSetULongCounterValue) 。 符号名称是变量的名称。

如果在调用 CTRPP 时包含 -prefix 参数,则会将前缀字符串添加到符号名称的开头。

要求

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