Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Prueba TraceProcessor para acceder a los datos de un seguimiento de eventos de Windows (ETW). TraceProcessor permite acceder a los datos de seguimiento de ETW como objetos .NET.
En este inicio rápido aprenderá a:
- Instale el paquete NuGet TraceProcessing.
- Cree un procesador de trazas (TraceProcessor).
- Use TraceProcessor para acceder a las líneas de comandos de proceso contenidas en el seguimiento.
Prerrequisitos
Visual Studio 2019
Instalación del paquete NuGet TraceProcessing
.NET TraceProcessing está disponible en NuGet con el siguiente identificador de paquete:
Microsoft.Windows.EventTracing.Processing.All
Puede usar este paquete en una aplicación de consola para enumerar las líneas de comandos de proceso contenidas en un seguimiento ETW (archivo .etl).
Cree una nueva aplicación de consola de .NET. En Visual Studio, seleccione Archivo, Nuevo, Proyecto... y elija la plantilla Aplicación de consola para C#.
Escriba un nombre de proyecto, por ejemplo, TraceProcessorQuickstart y elija Crear.
En el Explorador de soluciones, haga clic con el botón derecho en Dependencias y elija Administrar paquetes NuGet... y cambie a la pestaña Examinar.
En el cuadro Buscar, escriba Microsoft.Windows.EventTracing.Processing.All y busque.
Seleccione Instalar en el paquete NuGet con ese nombre y cierre la ventana de NuGet.
Creación de un traceProcessor
Cambie Program.cs a los siguientes contenidos:
using Microsoft.Windows.EventTracing; using Microsoft.Windows.EventTracing.Processes; using System; class Program { static void Main(string[] args) { if (args.Length != 1) { Console.Error.WriteLine("Usage: <trace.etl>"); return; } using (ITraceProcessor trace = TraceProcessor.Create(args[0])) { // TODO: call trace.Use... trace.Process(); Console.WriteLine("TODO: Access data from the trace"); } } }Proporcione un nombre de seguimiento que se usará al ejecutar el proyecto.
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y elija Propiedades. Cambie a la pestaña Depurar y escriba la ruta de acceso a un seguimiento (archivo .etl) en los argumentos de la aplicación.
Si aún no tiene un archivo de seguimiento, puede usar Windows Performance Recorder para crear uno.
Ejecute la aplicación.
Elija Depurar, Iniciar sin depurar para ejecutar el código.
Uso de TraceProcessor para acceder a las líneas de comandos de proceso contenidas en el seguimiento
Cambie Program.cs a los siguientes contenidos:
using Microsoft.Windows.EventTracing; using Microsoft.Windows.EventTracing.Processes; using System; class Program { static void Main(string[] args) { if (args.Length != 1) { Console.Error.WriteLine("Usage: <trace.etl>"); return; } using (ITraceProcessor trace = TraceProcessor.Create(args[0])) { IPendingResult<IProcessDataSource> pendingProcessData = trace.UseProcesses(); trace.Process(); IProcessDataSource processData = pendingProcessData.Result; foreach (IProcess process in processData.Processes) { Console.WriteLine(process.CommandLine); } } } }Vuelva a ejecutar la aplicación.
Esta vez, debería ver una lista de líneas de comandos de todos los procesos que se estaban ejecutando mientras se registraba el seguimiento.
Pasos siguientes
En este inicio rápido, creaste una aplicación de consola, instalaste TraceProcessor y lo usaste para acceder a las líneas de comandos de proceso desde una traza ETW. Ahora tiene una aplicación que accede a los datos de seguimiento.
La información del proceso es solo uno de los muchos tipos de datos almacenados en un seguimiento ETW al que puede acceder la aplicación.
El siguiente paso consiste en examinar más detenidamente TraceProcessor y los demás orígenes de datos a los que puede acceder.