Funzione RegisterTraceGuidsA (evntrace.h)
La funzione RegisterTraceGuids
Questa funzione è obsoleta. Il nuovo codice deve usare
Sintassi
ULONG WMIAPI RegisterTraceGuidsA(
[in] WMIDPREQUEST RequestAddress,
[in] PVOID RequestContext,
[in] LPCGUID ControlGuid,
[in] ULONG GuidCount,
[in, out] PTRACE_GUID_REGISTRATION TraceGuidReg,
[in] LPCSTR MofImagePath,
[in] LPCSTR MofResourceName,
[out] TRACEGUID_HANDLE *RegistrationHandle
);
Parametri
[in] RequestAddress
Puntatore a una funzione ControlCallback che riceve la notifica quando il provider è abilitato o disabilitato da una sessione di traccia eventi. La funzione EnableTrace
[in] RequestContext
Puntatore a un contesto facoltativo definito dal provider che ETW passa alla funzione specificata da RequestAddress.
[in] ControlGuid
GUID di controllo (ID provider) del provider di registrazione.
[in] GuidCount
Numero di elementi nella matrice TraceGuidReg
[in, out] TraceGuidReg
Puntatore a una matrice di
TRACE_GUID_REGISTRATION strutture.
Ogni elemento identifica una categoria di eventi forniti dal provider.
All'input, il guid membro di ogni struttura contiene un GUID della classe di traccia di eventi assegnato dal provider di registrazione. Il GUID della classe identifica una categoria di eventi forniti dal provider. I provider usano lo stesso GUID della classe per impostare il membro Guid di
In caso di output, il membro RegHandle
Questo parametro può essere
[in] MofImagePath
Questo parametro non è supportato. Impostare su NULL. È consigliabile usare Mofcomp.exe per registrare la risorsa MOF durante la configurazione dell'applicazione. Per altre informazioni, vedere Pubblicazione dello schema di eventi.
Windows XP con SP1, Windows XP e Windows 2000: Puntatore a una stringa facoltativa che specifica il percorso della DLL o del programma eseguibile che contiene la risorsa specificata da MofResourceName. Questo parametro può essere NULL se il provider di eventi e il consumer usano un altro meccanismo per condividere informazioni sulle classi di traccia evento usate dal provider.
[in] MofResourceName
Questo parametro non è supportato. Impostare su NULL. È consigliabile usare Mofcomp.exe per registrare la risorsa MOF durante la configurazione dell'applicazione. Per altre informazioni, vedere Pubblicazione dello schema di eventi.
Windows XP con SP1, Windows XP e Windows 2000: Puntatore a una stringa facoltativa che specifica la risorsa stringa di MofImagePath. La risorsa stringa contiene il nome del file MOF binario che descrive le classi di traccia eventi supportate dal provider.
[out] RegistrationHandle
Riceve l'handle di registrazione del provider. Usare l'handle restituito quando si chiama la funzione
Importante
Tutti gli handle di registrazione creati da una DLL o da un driver devono essere annullati prima dello scaricamento della DLL o del driver. Se il provider non è registrato, si verificherà un arresto anomalo quando ETW tenta di richiamare il callback del provider.
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.
Importante
Questa funzione può anche restituire il valore restituito da ControlCallback se un controller chiama EnableTrace per abilitare il provider e il provider non ha ancora chiamato RegisterTraceGuids. In questo caso, RegisterTraceGuids restituirà il valore restituito del callback se la registrazione ha avuto esito positivo.
ERROR_INVALID_PARAMETER
Una delle condizioni seguenti è vera:
- RequestAddress è NULL.
- ControlGuid è NULL.
- RegistrationHandle è NULL.
Windows XP e Windows 2000:TraceGuidReg è NULL o GuidCount è minore o uguale a zero.
Osservazioni
Nota
La maggior parte degli sviluppatori non chiamerà direttamente questa funzione. Gli sviluppatori useranno in genere un framework ETW. Ad esempio, WPP basato su TMF gestisce le chiamate a RegisterTraceGuids, TraceMessagee UnregisterTraceGuids per conto dell'utente.
Questa funzione apre un handle del provider di eventi classico
Nota
Per aprire un provider di di di windows Vista
Se il ControlGuid del provider è stato registrato e abilitato in precedenza, le registrazioni successive che fanno riferimento allo stesso ControlGuid vengono abilitate automaticamente.
Un processo può registrare fino a 1.024 GUID del provider; Tuttavia, è necessario limitare il numero di provider registrati dal processo a uno o due. Questo limite include quelli registrati usando questa funzione e la funzione EventRegister.
prima di Windows Vista: non esiste alcun limite al numero di provider che un processo può registrare.
Esempi
Per un esempio che usa RegisterTraceGuids, vedere Scrittura di eventi classici.
Nota
L'intestazione evntrace.h definisce RegisterTraceGuids come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [app desktop | App UWP] |
server minimo supportato | Windows 2000 Server [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
evntrace.h |
libreria |
Sechost.lib in Windows 8.1 e Windows Server 2012 R2; Advapi32.lib in Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista e Windows XP |
dll | Sechost.dll in Windows 8.1 e Windows Server 2012 R2; Advapi32.dll in Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista e Windows XP |