Поделиться через


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

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

<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] не указан, Lodctr.exe выполняет поиск в папке, содержащей манифест.
обратный вызов Этот атрибут указывает, что вы хотите получать уведомления, когда потребитель выполняет определенные действия.
Если этот атрибут включен, средство CTRPP использует альтернативную сигнатуру функции CounterInitialize , которая используется для передачи имени функции, реализующей функцию обратного вызова ControlCallback .
Вместо указания этого атрибута можно использовать аргумент CTRPP-NotificationCallback.
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 [только классические приложения]