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:
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.
Usare la costante TYPEMACRO per definire il tipo di dati personalizzato.
Identificare i dati di configurazione nel file di origine o intestazione.
Aggiungere il parametro -ini alla macro RUN_WPP nel file di origine.
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.