Configurazione e avvio di una sessione SystemTraceProvider
SystemTraceProvider è un provider di kernel con un set predefinito di eventi kernel supportati in Windows 7, Windows Server 2008 R2 e versioni successive. In Windows 7 e Windows Server 2008 R2, SystemTraceProvider può essere usato solo per la sessione NT Kernel Logger.
In Windows 8, Windows Server 2012 e versioni successive, SystemTraceProvider può essere multiplexed per fino a 8 sessioni di logger. I primi due slot per le sessioni del logger sono riservati per NT Kernel Logger e logger del contesto del kernel circolare .
Per altre informazioni sull'uso della sessione NT Kernel Logger come provider di traccia, vedere Configurazione e avvio della sessione NT Kernel Logger.
In Windows 10 SDK build 20348 e versioni successive, SystemTraceProvider può essere configurato tramite provider di sistema separati, che possono essere controllati con EnableTraceEx2 come la traccia eventi standard per i provider di eventi windows. Per un elenco completo di provider di sistema, parole chiave e flag legacy corrispondenti, vedere Provider di sistema
Abilitare una sessione SystemTraceProvider
Per abilitare SystemTraceProvider per avviare una sessione diversa da NT Kernel Logger, eseguire il comando seguente:
tracelog -start MySession -f c:\Kernel1.etl -eflag PROC_THREAD+LOADER+CSWITCH
Per abilitare a livello di codice SystemTraceProvider per avviare una sessione diversa da NT Kernel Logger, seguire questa procedura.
Definire un nome di logger privato.
#define PRIVATE_LOGGER_NAME L"Alcune sessioni di traccia privata"
Nel controller impostare i membri seguenti della struttura EVENT_TRACE_PROPERTIES .
Impostare LogFileMode su EVENT_TRACE_SYSTEM_LOGGER_MODE.
Impostare LoggerName su logger privato anziché KERNEL_LOGGER_NAME.
Assicurarsi che il membro Wnode.Guid della struttura EVENT_TRACE_PROPERTIES non sia impostato su SystemTraceControlGuid. È necessario assegnare un nuovo GUID a questo membro.
Nel consumer impostare il membro LoggerName della struttura EVENT_TRACE_LOGFILE su questo logger privato.
Nota
Se si vuole che un processo non TCB o non amministratore possa avviare una sessione di traccia di profilatura usando SystemTraceProvider per conto delle applicazioni di terze parti, è necessario concedere il privilegio del profilo utente e quindi aggiungere l'utente al GUID della sessione (creato per la sessione del logger) e il GUID del provider di traccia di sistema per abilitare il provider di traccia di sistema. Per altre informazioni, vedere la funzione EventAccessControl .
Argomenti correlati
Configurazione e avvio di una sessione di logger privato
Configurazione e avvio di una sessione autoLogger
Configurazione e avvio di una sessione di traccia eventi
Configurazione e avvio della sessione del logger del kernel NT
Aggiornamento di una sessione di traccia eventi