Квалификаторы MOF трассировки событий
Используйте квалификаторы, определенные в этом разделе, при создании класса MOF поставщика, класса MOF события, класса MOF типа события и свойств класса MOF типа события. Пример, включающий некоторые из этих квалификаторов, см. в разделе Публикация схемы события.
Квалификаторы класса MOF поставщика
В следующей таблице перечислены квалификаторы, которые можно указать в классе MOF поставщика.
Квалификатор | Тип данных | Описание |
---|---|---|
Guid | String | Обязательный. Строковый guid, который однозначно идентифицирует поставщика. Например, Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Это тот же GUID, который используется при вызове функции RegisterTraceGuids для регистрации поставщика. |
Квалификаторы класса MOF-событий
В следующей таблице перечислены квалификаторы, которые можно указать для класса событий (родительского класса, группирующие связанные классы типов событий).
Квалификатор | Тип данных | Описание |
---|---|---|
Guid | String | Обязательный. Строка GUID, идентифицирующая класс событий. Например, Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Поставщики событий используют guid для задания EVENT_TRACE_HEADER. Элемент GUID , чтобы потребители могли определить класс событий, которые они получают. |
EventVersion | Целое число | Этот квалификатор является необязательным для последней версии класса трассировки событий и является обязательным для всех предыдущих версий класса . Последняя версия класса либо не указывает квалификатор EventVersion , либо имеет самый высокий номер версии. Номера версий начинаются с 0, например EventVersion(0). Как правило, при создании новой версии класса предыдущую версию <также переименовывать в classname>_Vn, где n — добавочное число, начинаемое с 0. Пример см. в разделе FileIo и FileIo_V0. |
Квалификаторы класса MOF типа события
В следующей таблице перечислены квалификаторы, которые можно указать в классе типа события (классе, определяющем данные свойства события).
Квалификатор | Значение | Описание |
---|---|---|
EventType | Целое число | Обязательный. Идентифицирует класс типа события. Например, EventType(1). Поставщик событий использует одно и то же значение типа события для задания EVENT_TRACE_HEADER. Class.Type. Если один и тот же класс MOF используется для нескольких типов событий (так как они используют одни и те же данные события), укажите значение типа события в виде массива целых чисел, например EventType{12,15}. |
EventTypeName | String | Необязательный элемент. Описывает тип события. Например, EventTypeName("Start"). Если один и тот же MOF-класс используется для нескольких типов событий (так как они используют одни и те же данные события), укажите значение имени типа события в виде массива строк, например EventTypeName{"Start", "End"}. Элементы массива EventTypeName напрямую соответствуют массиву EventType. |
Квалификаторы свойств
В следующей таблице перечислены квалификаторы, которые можно указать в свойстве .
Квалификатор | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Растрового изображения | Указывает битовые позиции, которые сопоставляются со строковыми значениями. При указании этого квалификатора необходимо также указать квалификатор BitValues . | ||||||||||
BitValues | Строковые значения. Если также указан квалификатор BitMap , строки непосредственно соответствуют значениям в квалификаторе BitMap . В противном случае предположим, что значение свойства является одним индексом в строках значений (бит, соответствующий первой строке в списке). | ||||||||||
Расширение | Предоставляет дополнительные сведения о том, как использовать (интерпретировать) данные. Значение расширения не учитывает регистр. Включите значение в кавычки, например Extension("Guid"). Возможные значения расширения:
|
||||||||||
Формат | Определяет формат данных свойства. Например, включение format("w") в строковом свойстве означает, что строка является широкой. Возможны следующие значения:
|
||||||||||
Указатель | Указывает, что свойство содержит значение указателя. Размер значения указателя зависит от операционной системы, используемой для регистрации события; полезные данные будут содержать 4-байтовое значение для 32-разрядных систем или 8-байтовое значение для 64-разрядных систем. Тип данных MOF должен быть object. Потребители должны игнорировать тип данных и квалификатор Format , если свойство включает расширение SizeT . Чтобы определить размер считываемых данных для свойства, используйте следующую команду:
До Windows Vista: Значение PointerSize может быть неверным. Например, на 64-разрядном компьютере 32-разрядное приложение регистрирует 4-байтовые указатели; однако сеанс установит для параметра PointerSize значение 8. Обратите внимание, что некоторые события используют PointerType вместо Pointer; не использовать PointerType. |
||||||||||
StringTermination | Указывает, как завершается строковое свойство. Например, StringTermination("NullTerminated") указывает, что строковое свойство завершается null. Возможны следующие значения:
|
||||||||||
Описания значений | Предоставляет описания для каждого значения в квалификаторе Значений . Функции TdhEnumerateProviderFieldInformation и TdhQueryProviderFieldInformation возвращают эти описания при попытке получить ключевое слово и сведения об уровне. Описания являются необязательными. Если не указать описания, функции возвращают значение NULL. Дополнительные сведения см . в статье Указание значений уровней и включение флагов для поставщика . | ||||||||||
ValueMap | Задает целочисленные значения индекса или флага, которые сопоставляют со строковыми значениями. При указании этого квалификатора необходимо также указать квалификатор Values и при необходимости квалификатор ValueType . Обратите внимание, что трассировка событий Windows не поддерживает параметр 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 чувствительны к регистру. Свойства должны включать квалификаторы Values и 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;
};