Calificadores MOF de seguimiento de eventos
Use los calificadores definidos en esta sección al crear la clase MOF del proveedor de , clase MOF de evento, tipo de evento MOFy las propiedades de la clase MOF de tipo de evento. Para obtener un ejemplo que incluya algunos de estos calificadores, vea Publicar el esquema de eventos.
Calificadores de clase MOF del proveedor
En la tabla siguiente se enumeran los calificadores que puede especificar en una clase MOF de proveedor.
Calificador | Tipo de dato | Descripción |
---|---|---|
guid de | cadena | Obligatorio. Guid de cadena que identifica de forma única un proveedor. Por ejemplo, Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Este es el mismo GUID que se usa al llamar a la función RegisterTraceGuids para registrar el proveedor. |
Calificadores de clase MOF de eventos
En la tabla siguiente se enumeran los calificadores que puede especificar en una clase de eventos (la clase primaria que agrupa las clases de tipo de evento relacionadas).
Calificador | Tipo de dato | Descripción |
---|---|---|
guid de | cadena | Obligatorio. Guid de cadena que identifica una clase de eventos. Por ejemplo, Guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Los proveedores de eventos usan el Guid para establecer el EVENT_TRACE_HEADER. Guid miembro, de modo que los consumidores puedan determinar la clase de eventos que reciben. |
EventVersion | entero | Este calificador es opcional para la versión más reciente de una clase de seguimiento de eventos y es necesario para todas las versiones anteriores de la clase. La versión más reciente de la clase no especifica el calificador EventVersion o tiene el número de versión más alto. Los números de versión comienzan por 0, por ejemplo, EventVersion(0). Normalmente, al crear una nueva versión de la clase, también cambia el nombre de la versión anterior a <nombredeclase>_Vn, donde n es un número incremental a partir de 0. Para obtener un ejemplo, vea FileIo y FileIo_V0. |
Calificadores de clase MOF de tipo de evento
En la tabla siguiente se enumeran los calificadores que puede especificar en una clase de tipo de evento (la clase que define los datos de la propiedad de evento).
Calificador | Valor | Descripción |
---|---|---|
EventType de | entero | Obligatorio. Identifica la clase de tipo de evento. Por ejemplo, EventType(1). El proveedor de eventos usa el mismo valor de tipo de evento para establecer EVENT_TRACE_HEADER. Class.Type. Si se usa la misma clase MOF para varios tipos de eventos (porque usan los mismos datos de evento), especifique el valor de tipo de evento como una matriz de enteros, por ejemplo, EventType{12,15}. |
EventTypeName | cadena | Opcional. Describe el tipo de evento. Por ejemplo, EventTypeName("Start"). Si se usa la misma clase MOF para varios tipos de eventos (porque usan los mismos datos de evento), especifique el valor del nombre del tipo de evento como una matriz de cadenas, por ejemplo, EventTypeName{"Start", "End"}. Los elementos de la matriz EventTypeName corresponden directamente a la matriz EventType. |
Calificadores de propiedad
En la tabla siguiente se enumeran los calificadores que puede especificar en una propiedad .
Calificador | Descripción | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
de mapa de bits de | Especifica las posiciones de bits que se asignan a valores de cadena. Si especifica este calificador, también debe especificar el calificador BitValues. | ||||||||||
bitValues de | Valores de cadena. Si también se especifica el calificador bitmap de, las cadenas corresponden directamente a los valores del calificador de bitMap de. De lo contrario, suponga que el valor de la propiedad es un índice basado en uno en las cadenas de valor (bit uno corresponde a la primera cadena de la lista). | ||||||||||
de extensión de | Proporciona información adicional sobre cómo consumir (interpretar) los datos. El valor de extensión no distingue mayúsculas de minúsculas. Incluya el valor entre comillas, por ejemplo, Extension("Guid"). Los valores de extensión posibles son:
|
||||||||||
formato de | Define el formato de los datos de propiedad. Por ejemplo, incluir Format("w") en una propiedad de cadena indica que la cadena es una cadena ancha. Los valores posibles son:
|
||||||||||
puntero | Indica que la propiedad contiene un valor de puntero. El tamaño del valor de puntero depende del sistema operativo utilizado para registrar el evento; la carga contendrá un valor de 4 bytes para sistemas de 32 bits o un valor de 8 bytes para sistemas de 64 bits. El tipo de datos MOF debe ser objeto. Los consumidores deben omitir el tipo de datos y calificador Format si la propiedad incluye la extensión sizeT de. Para determinar el tamaño de los datos que se van a leer para la propiedad, use:
Antes de Windows Vista: es posible que el PointerSize valor no sea preciso. Por ejemplo, en un equipo de 64 bits, una aplicación de 32 bits registrará punteros de 4 bytes; sin embargo, la sesión establecerá PointerSize en 8. Tenga en cuenta que algunos eventos usan pointerType en lugar de puntero; no use PointerType. |
||||||||||
StringTermination | Indica cómo finaliza la propiedad de cadena. Por ejemplo, StringTermination("NullTerminated") indica que la propiedad string está terminada en null. Los valores posibles son:
|
||||||||||
ValueDescriptions | Proporciona descripciones para cada valor del calificador de Valores. Las funciones de TdhEnumerateProviderFieldInformation y TdhQueryProviderFieldInformation devuelven estas descripciones al intentar recuperar información de nivel y palabra clave. Las descripciones son opcionales. Si no proporciona las descripciones, las funciones devuelven null. Consulte Especificación de los valores de nivel y habilitación de marcas para un proveedor para obtener más detalles. | ||||||||||
ValueMap | Especifica los valores de índice entero o marca que se asignan a valores de cadena. Si especifica este calificador, también debe especificar el calificador Valores y, opcionalmente, el calificador ValueType. Tenga en cuenta que ETW no admite la opción WMI de tener cadenas para los valores de mapa de valores.
En el ejemplo siguiente se muestra cómo usar los calificadores ValueMap, Values y ValueType.
|
||||||||||
valores | Valores de cadena. Si también se especifica el calificador valueMap de, las cadenas corresponden directamente a los valores del calificador de ValueMap. De lo contrario, suponga que el valor de la propiedad es un índice de base cero en las cadenas de valor. | ||||||||||
ValueType de | Indica si los valores de ValueMap son valores de índice enteros o valores de marca de bits. Si no especifica este calificador, se asumen los valores de índice entero. Para especificar que los valores son valores de índice entero, use ValueType("index"). Para especificar que los valores son valores de marca de bits, use ValueType("flag"). | ||||||||||
WmiDataId | Cada propiedad debe contener el calificador WmiDataId . WmiDataId define el orden en el que el consumidor lee los datos del evento. El valor de WmiDataId comienza en 1 e incrementos para cada propiedad de la clase . Por ejemplo, WmiDataId(1). | ||||||||||
XMLFragment | Indica que los datos están en formato XML y listos para mostrarse sin formato adicional. |
Especificación de los valores de nivel y habilitación de marcas para un proveedor
Para documentar el nivel y habilitar las marcas que usaría un controlador para habilitar el proveedor, incluya las propiedades "Level" y "Flags" en la clase MOF del proveedor. Los nombres de propiedad Level y Flags distinguen mayúsculas de minúsculas. Las propiedades deben incluir los Valores y calificadores ValueMap, que especifican el nivel posible y habilitan los valores de marca. El valueMap de para los valores de marca de habilitación debe ser valores bit (flag). El calificador ValueDescriptions es opcional, pero debe usarlo para proporcionar descripciones para cada valor posible. Las descripciones se usan cuando alguien llama a las funciones de TdhEnumerateProviderFieldInformation y funciones TdhQueryProviderFieldInformation para obtener el nivel posible y habilitar los valores de marcas (palabras clave) para el proveedor.
A continuación se muestra una clase de proveedor que especifica el nivel posible y habilita los valores de las marcas.
[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;
};