Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Event Tracing for 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
Invece di leggere "DiskState=2" in un messaggio di traccia e quindi dover 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 il nome file che ha l'estensione .ini, come 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 nelle origini o nel file di 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 vengono definiti come un elenco di stringhe.
TYPEMACRO(Type,{ItemListLong | ItemListShort | ItemListByteShort | ItemListByteLong},(Value1,Value2...));
dove:
ItemListShort
Intero con segno a 16 bit.
ItemListLong
Intero (32 bit) con o senza segno.
ItemSetByteShort
Valore a 16 bit con segno.
ItemSetByteLong
Valore numerico a 32 bit con segno o senza segno.
Per 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 config e end_wpp per identificare i dati di configurazione nel file. Per 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 begin_wpp config 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 indica a ETW di cercare i dati di configurazione nei file di configurazione (.ini), oltre a usare Defaultwpp.ini. Per esempio:
RUN_WPP -km -ini:localwpp.ini
Importante
Non è necessario specificare l'opzione -km nella direttiva RUN_WPP per le applicazioni in modalità utente o le 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 di percentuale (%) e racchiuderlo con punti esclamativi (!). Per esempio:
DoTraceMessage(INFO,"Disk State is %!diskstate!",DiskState);
Il messaggio di traccia risultante usa la costante definita per rappresentare il valore:
DiskState is Offline.