Compartir a través de


¿Cómo se definen los tipos de datos personalizados?

Seguimiento de eventos para Windows (ETW) define varios tipos simples y complejos para su uso en las funciones de seguimiento. Estos tipos se declaran en el archivo Defaultwpp.ini. Sin embargo, puede crear sus propios tipos de datos personalizados.

Use un tipo de datos personalizado cuando desee declarar variables y usar términos significativos(en lugar de enteros) para describir el valor de las variables.

Por ejemplo, la variable DiskState contiene el estado del disco. A continuación se muestran los valores de DiskState:

DiskOffline = 0
DiskOnline = 1
DiskFailed = 2
DiskStalled = 3

En lugar de leer "DiskState=2" en un mensaje de seguimiento y, a continuación, tener que buscar el significado de 2, puede definir un tipo personalizado denominado DiskState, para obtener un mensaje de seguimiento que indica "DiskState is Failed".

Crear un tipo de datos personalizado

Para crear un tipo de datos personalizado, complete los pasos siguientes:

  1. Cree un archivo de configuración local que tenga la extensión de nombre de archivo .ini, como localwpp.ini. No se puede agregar un tipo personalizado a un encabezado o archivo de origen.

  2. Use la constante TYPEMACRO para definir el tipo de datos personalizado.

  3. Identifique los datos de configuración en los orígenes o en el archivo de encabezado.

  4. Agregue el parámetro -ini a la macro RUN_WPP en el archivo de origen.

  5. Use el tipo de datos personalizado en los mensajes de seguimiento.

Definición de una constante TYPEMACRO

Defina una constante TYPEMACRO que tenga el formato siguiente. Los valores se definen como una lista de cadenas.

TYPEMACRO(Type,{ItemListLong | ItemListShort | ItemListByteShort | ItemListByteLong},(Value1,Value2...));

donde:

ItemListShort
Entero de 16 bits con signo.

ItemListLong
Entero de 32 bits con signo o sin signo.

ItemSetByteShort
Valor de 16 bits con signo.

ItemSetByteLong
Valor de 32 bits con signo o sin signo.

Por ejemplo:

TYPEMACRO(DiskState,ItemListLong(DiskOffline,DiskOnline,DiskFailed,DiskStalled));

Identificación de los datos de configuración

Si agregó el tipo de datos personalizado a un archivo que tiene otro código, como un archivo de origen o un archivo de encabezado, use las instrucciones begin_wpp config y end_wpp para identificar los datos de configuración en el archivo. Por ejemplo:

// begin_wpp config
    //TYPEMACRO(DiskState,ItemListLong(DiskOffline,DiskOnline,DiskFailed,DiskStalled));
// end_wpp

Si agregó el tipo de datos personalizado a un archivo de configuración local, no se necesitan las instrucciones config y end_wpp begin_wpp.

Adición del parámetro -ini

Al crear un archivo de configuración local para un tipo personalizado, debe agregar el parámetro -ini a la instrucción RUN_WPP que invoca el preprocesador de WPP.

El parámetro -ini dirige ETW para buscar datos de configuración en archivos de configuración (.ini), además de usar Defaultwpp.ini. Por ejemplo:

RUN_WPP -km -ini:localwpp.ini

Importante

No debe especificar el modificador -km en la directiva RUN_WPP para aplicaciones en modo de usuario o bibliotecas de vínculos dinámicos (DLL).

Uso del tipo de datos personalizado

Después de definir un tipo de datos personalizado, puede usarlo en mensajes de seguimiento. Precede al nombre de tipo con un signo de porcentaje (%) y lo rodea con signos de exclamación (!). Por ejemplo:

DoTraceMessage(INFO,"Disk State is %!diskstate!",DiskState); 

El mensaje de seguimiento resultante usa la constante que definió para representar el valor:

DiskState is Offline.