Condividi tramite


Come si definiscono tipi di dati personalizzati?

La traccia eventi per Windows (ETW) definisce diversi tipi semplici e complessi da usare nelle funzioni di traccia. Questi tipi vengono dichiarati nel file Defaultwpp.ini. È tuttavia possibile creare tipi di dati personalizzati.

Si usa un tipo di dati personalizzato quando si desidera dichiarare le variabili e usare termini significativi anziché integer per descrivere il valore delle variabili.

Ad esempio, la variabile DiskState contiene lo stato del disco. Di seguito sono riportati i valori di DiskState:

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

Anziché leggere "DiskState=2" in un messaggio di traccia e quindi cercare il significato di 2, è possibile definire un tipo personalizzato denominato DiskState per ottenere un messaggio di traccia che indica " DiskState is Failed".

Creazione di un tipo di dati personalizzato

Per creare un tipo di dati personalizzato, completare la procedura seguente:

  1. Creare un file di configurazione locale con estensione .ini nome file, ad esempio localwpp.ini. Non è possibile aggiungere un tipo personalizzato a un'intestazione o a un file di origine.

  2. Usare la costante TYPEMACRO per definire il tipo di dati personalizzato.

  3. Identificare i dati di configurazione nel file di origine o intestazione.

  4. Aggiungere il parametro -ini alla macro RUN_WPP nel file di origine.

  5. Usare il tipo di dati personalizzato nei messaggi di traccia.

Definizione di una costante TYPEMACRO

Definire una costante TYPEMACRO con il formato seguente. I valori sono definiti come elenco di stringhe.

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

dove:

ItemListShort
Intero con segno a 16 bit.

ItemListLong
Intero con segno o senza segno a 32 bit.

ItemSetByteShort
Valore a 16 bit firmato.

ItemSetByteLong
Valore con segno o senza segno a 32 bit.

Ad esempio:

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

Identificazione dei dati di configurazione

Se è stato aggiunto il tipo di dati personalizzato a un file con altro codice, ad esempio un file di origine o un file di intestazione, usare le istruzioni begin_wpp configurazione e end_wpp per identificare i dati di configurazione nel file. Ad esempio:

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

Se è stato aggiunto il tipo di dati personalizzato a un file di configurazione locale, non sono necessarie le istruzioni di configurazione begin_wpp e end_wpp .

Aggiungere il parametro -ini

Quando si crea un file di configurazione locale per un tipo personalizzato, è necessario aggiungere il parametro -ini all'istruzione RUN_WPP che richiama il preprocessore WPP.

Il parametro -ini indirizza ETW alla ricerca dei dati di configurazione nei file di configurazione (.ini), oltre all'uso di Defaultwpp.ini. Ad esempio:

RUN_WPP -km -ini:localwpp.ini

Importante

Non è necessario specificare l'opzione -km nella direttiva RUN_WPP per applicazioni in modalità utente o librerie a collegamento dinamico (DLL).

Uso del tipo di dati personalizzato

Dopo aver definito un tipo di dati personalizzato, è possibile usarlo nei messaggi di traccia. Precedere il nome del tipo con un segno percentuale () e circondarlo con segni esclamativi (%!). Ad esempio:

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

Il messaggio di traccia risultante usa la costante definita per rappresentare il valore:

DiskState is Offline.