Квалификаторы трассировки событий MOF
Используйте квалификаторы, определенные в этом разделе, при создании класса MOF поставщикапоставщика, класса MOF события, класса MOF типа событияи свойства класса MOF типа события. Пример, включающий некоторые из этих квалификаторов, см. в разделе публикации схемы событий.
Квалификаторы классов MOF поставщика
В следующей таблице перечислены квалификаторы, которые можно указать в классе MOF поставщика.
Квалификатор | Тип данных | Описание |
---|---|---|
Guid | строка | Обязательно. Строковый guid, который однозначно идентифицирует поставщика. Например, Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Это тот же GUID, который вы используете при вызове функции RegisterTraceGuids для регистрации поставщика. |
Квалификаторы классов MOF событий
В следующей таблице перечислены квалификаторы, которые можно указать в классе событий (родительский класс, который группит связанные классы типов событий).
Квалификатор | Тип данных | Описание |
---|---|---|
Guid | строка | Обязательно. Строковый guid, определяющий класс событий. Например, Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Поставщики событий используют guid для задания EVENT_TRACE_HEADER. Guid член, чтобы потребители могли определить класс событий, которые они получают. |
EventVersion | целочисленного | Этот квалификатор является необязательным для последней версии класса трассировки событий и необходим для всех старых версий класса. Последняя версия класса либо не указывает квалификатор EventVersion или имеет самый высокий номер версии. Номера версий начинаются с 0, например EventVersion(0). Как правило, при создании новой версии класса также переименуйте предыдущую версию на <имя класса>_Vn, где n — добавочное число, начиная с 0. Пример см. в разделе FileIo и FileIo_V0. |
Квалификаторы квалификаторов класса MOF типа события
В следующей таблице перечислены квалификаторы, которые можно указать в классе типа события (класс, определяющий данные свойства события).
Квалификатор | Ценность | Описание |
---|---|---|
EventType | целочисленного | Обязательно. Определяет класс типа события. Например, EventType(1). Поставщик событий использует то же значение типа события для задания EVENT_TRACE_HEADER. Class.Type. Если один и тот же класс MOF используется для нескольких типов событий (так как они используют одни и те же данные события), укажите значение типа события в виде массива целых чисел, например EventType{12,15}. |
EventTypeName | строка | Необязательный. Описывает тип события. Например, EventTypeName("Start"). Если один и тот же класс MOF используется для нескольких типов событий (так как они используют одни и те же данные события), укажите значение имени типа события в виде массива строк, например EventTypeName{"Start", "End"}. Элементы массива EventTypeName соответствуют массиву EventType непосредственно массиву EventType. |
Квалификаторы свойств
В следующей таблице перечислены квалификаторы, которые можно указать в свойстве.
Квалификатор | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
BitMap | Указывает битовые позиции, сопоставленные со строковыми значениями. Если указать этот квалификатор, необходимо также указать квалификатор BitValues. | ||||||||||
BitValues | Строковые значения. Если также указан квалификатор bitMap BitMap, строки соответствуют значениям в квалификаторе bitMap . В противном случае предположим, что значение свойства является одноуровневой индексом в строки значений (бит один соответствует первой строке в списке). | ||||||||||
расширения | Предоставляет дополнительные сведения об использовании (интерпретации) данных. Значение расширения не учитывает регистр. Включите значение в кавычки, например Extension("Guid"). Возможные значения расширения:
|
||||||||||
Форматирование | Определяет формат данных свойства. Например, включая Format("w") в строковом свойстве, указывает, что строка является широкой строкой. Возможные значения:
|
||||||||||
указателя | Указывает, что свойство содержит значение указателя. Размер значения указателя зависит от операционной системы, используемой для регистрации события; Полезные данные будут содержать 4-байтовое значение для 32-разрядных систем или 8-байтовое значение для 64-разрядных систем. Тип данных MOF должен быть объектом. Потребители должны игнорировать тип данных и квалификатор форматирования, если свойство включает расширение SizeT. Чтобы определить размер данных для чтения для свойства, используйте следующую команду:
До Windows Vista: Значение PointerSize может быть не точным. Например, на 64-разрядном компьютере 32-разрядное приложение будет записывать 4-байтовые указатели; однако сеанс установит PointerSize значение 8. Обратите внимание, что некоторые события используют PointerType вместо указателя; не используйте PointerType. |
||||||||||
StringTermination | Указывает, как завершается строковое свойство. Например, StringTermination("NullTerminated") указывает, что строковое свойство завершается значением NULL. Возможные значения:
|
||||||||||
ValueDescriptions | Содержит описания каждого значения в квалификаторе значений. Функции TdhEnumerateProviderFieldInformation и функции TdhQueryProviderFieldInformation возвращают эти описания при попытке получить сведения о ключевом слове и уровне. Описания являются необязательными. Если вы не предоставляете описания, функции возвращают NULL. Дополнительные сведения см. в разделе Указание уровня и включение значений флагов для поставщика. | ||||||||||
ValueMap | Указывает целый индекс или значения флагов, сопоставленные со строковыми значениями. Если этот квалификатор указан, необходимо также указать квалификатор значений и при необходимости квалификатор ValueType. Обратите внимание, что ETW не поддерживает параметр WMI для строк для значений сопоставления значений.
В следующем примере показано, как использовать квалификаторы ValueMap, Values и ValueType.
|
||||||||||
значений | Строковые значения. Если также указан квалификатор ValueMap, строки соответствуют значениям в квалификаторе valueMap . В противном случае предположим, что значение свойства — это отсчитываемый от нуля индекс в строках значений. | ||||||||||
ValueType | Указывает, являются ли значения ValueMap целочисленными значениями индекса или битовыми значениями флагов. Если этот квалификатор не указан, предполагается, что предполагается целочисленные значения индекса. Чтобы указать, что значения являются целыми значениями индекса, используйте ValueType("index"). Чтобы указать, что значения битовые значения флагов, используйте ValueType("flag"). | ||||||||||
WmiDataId | Каждое свойство должно содержать квалификатор WmiDataId. WmiDataId определяет порядок, в котором потребитель считывает данные события. Значение WmiDataId начинается с 1 и увеличивается для каждого свойства в классе. Например, WmiDataId(1). | ||||||||||
XMLFragment | Указывает, что данные отображаются в формате XML и готовы к отображению без дальнейшего форматирования. |
Указание уровня и включение значений флагов для поставщика
Чтобы документировать уровень и включить флаги, которые контроллер будет использовать для включения поставщика, включите свойства Level и Flags в класс MOF поставщика. Имена свойств Level и Flags чувствительны к регистру. Свойства должны включать квалификаторы значений и valueMap, которые указывают возможный уровень и включают значения флагов. ValueMap для значений флага включения должны быть битовыми (флагами). ValueDescriptions квалификатор является необязательным, но его следует использовать для предоставления описаний для каждого возможного значения. Описания используются, когда кто-то вызывает функции TdhEnumerateProviderFieldInformation и функции TdhQueryProviderFieldInformation, чтобы получить возможный уровень и включить значения флагов (ключевых слов) для поставщика.
Ниже показан класс поставщика, указывающий возможный уровень и включение значений флагов.
[Dynamic,
Description("IIS_Trace") : amended,
guid("{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}"),
locale("MS\\0x409")]
class IIS_Trace : EventTrace
{
[Description ("Enable Flags") : amended,
ValueDescriptions{
"Allow_tracing_only_selected_requests ",
"IIS_authentication_events ",
"IIS_security_events ",
"IIS_filter_events ",
"IIS_static_file_events ",
"IIS_CGI_events ",
"IIS_compression_events ",
"IIS_cache_events ",
"IIS_request_notifications_events ",
"IIS_module_events ",
"IIS_FastCGI_events "},
DefineValues{
"UseUrlFilter",
"IISAuthentication",
"IISSecurity",
"IISFilter",
"IISStaticFile",
"IISCGI",
"IISCompression",
"IISCache",
"IISRequestNotification",
"IISModule",
"IISFastCGI"},
Values{
"UseUrlFilter",
"IISAuthentication",
"IISSecurity",
"IISFilter",
"IISStaticFile",
"IISCGI",
"IISCompression",
"IISCache",
"IISRequestNotification",
"IISModule",
"IISFastCGI"},
ValueMap{
"0x00000001",
"0x00000002",
"0x00000004",
"0x00000008",
"0x00000010",
"0x00000020",
"0x00000040",
"0x00000080",
"0x00000100",
"0x00000200",
"0x00001000"}: amended
]
uint32 Flags;
[Description ("Levels") : amended,
ValueDescriptions{
"Abnormal exit or termination",
"Severe errors that need logging",
"Warnings such as allocation failure",
"Includes non-error cases",
"Detailed traces from intermediate steps" } : amended,
DefineValues{
"TRACE_LEVEL_FATAL",
"TRACE_LEVEL_ERROR",
"TRACE_LEVEL_WARNING"
"TRACE_LEVEL_INFORMATION",
"TRACE_LEVEL_VERBOSE" },
Values{
"Fatal",
"Error",
"Warning",
"Information",
"Verbose" },
ValueMap{
"0x1",
"0x2",
"0x3",
"0x4",
"0x5" },
ValueType("index")
]
uint32 Level;
};