Funzione CreateTraceInstanceId (evntrace.h)
Un provider di eventi basato su RegisterTraceGuids ("classico") può usare la funzione CreateTraceInstanceId per creare un identificatore di transazione univoco e eseguirne il mapping a un handle di registrazione. Il provider usa quindi l'identificatore della transazione quando si chiama la funzione TraceEventInstance per contrassegnare gli eventi come appartenenti alla transazione specificata. L'identificatore della transazione può essere usato dagli strumenti di analisi di traccia per raggruppare gli eventi.
Sintassi
ULONG WMIAPI CreateTraceInstanceId(
[in] HANDLE RegHandle,
[out] PEVENT_INSTANCE_INFO InstInfo
);
Parametri
[in] RegHandle
Handle in una classe di traccia eventi registrata. La funzione RegisterTraceGuids restituisce questo handle nel membro RegHandle della struttura TRACE_GUID_REGISTRATION .
[out] InstInfo
Puntatore a una struttura EVENT_INSTANCE_INFO . Il membro InstanceId di questa struttura contiene l'identificatore della transazione.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è ERROR_SUCCESS.
Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore di sistema. Di seguito sono riportati alcuni errori comuni e le relative cause.
ERROR_INVALID_PARAMETER
Una delle seguenti condizioni è vera:
- RegHandle è NULL.
- pInstInfo è NULL.
Commenti
I provider basati su RegisterTraceGuids ("classico") chiamano questa funzione. Usare EventActivityIdControl per funzionalità simili con un provider EventRegister ("Crimson").
ETW crea l'identificatore nel processo in modalità utente, quindi potrebbe restituire lo stesso numero per istanze diverse in processi diversi. Il valore inizia quando 1
InstanceId raggiunge il valore massimo per una ULONG. Solo i provider in modalità utente possono chiamare la funzione CreateTraceInstanceId (i driver non possono chiamare questa funzione).
Esempio
Per un esempio che usa CreateTraceInstanceId, vedere Traccia delle istanze degli eventi.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | evntrace.h |
Libreria | Advapi32.lib |
DLL | Advapi32.dll |