Сложный тип поставщика

Определяет поставщика и счетчики, которые он предоставляет.

<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 выполняет поиск в папке, содержащей манифест.
обратный вызов Этот атрибут указывает, что вы хотите получать уведомления, когда потребитель выполняет определенные действия.
Если этот атрибут включен, средство CTRPP использует альтернативную сигнатуру функции CounterInitialize , которая используется для передачи имени функции, реализующей функцию обратного вызова ControlCallback .
В качестве альтернативы указанию этого атрибута можно использовать аргумент -NotificationCallbackCTRPP.
Windows Vista: единственным допустимым значением этого атрибута является custom. Служебная программа CTRPP создает шаблон для функции обратного вызова ControlCallback . Шаблон включен в C-файл, созданный CTRPP.

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). Символическое имя — это имя переменной.

При включении аргумента -prefix при вызове CTRPP строка префикса добавляется в начало символьного имени.

Требования

Требование Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2008 [только классические приложения]