Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Попробуйте использовать TraceProcessor для доступа к данным в трассировке событий для Windows (ETW). TraceProcessor позволяет получить доступ к данным трассировки ETW в виде объектов .NET.
В этом кратком руководстве вы узнаете, как:
- Установите пакет NuGet TraceProcessing.
- Создайте TraceProcessor.
- Используйте TraceProcessor для доступа к командным строкам процесса, содержащимся в трассировке.
Предпосылки
Visual Studio 2019
Установка пакета NuGet TraceProcessing
.NET TraceProcessing доступен из NuGet со следующим идентификатором пакета:
Microsoft.Windows.EventTracing.Processing.All
Этот пакет можно использовать в консольном приложении для перечисления команд обработки, содержащихся в трассировке ETW (ETL-файл).
Создайте консольное приложение .NET. В Visual Studio выберите "Файл", "Создать", "Проект", а затем выберите шаблон консольного приложения для C#.
Введите имя проекта, например TraceProcessorQuickstart, и нажмите кнопку "Создать".
В обозревателе решений щелкните правой кнопкой мыши на пункте "Зависимости" и выберите "Управление пакетами NuGet...", а затем перейдите на вкладку "Обзор".
В поле поиска введите Microsoft.Windows.EventTracing.Processing.All и выполните поиск.
Выберите "Установить" в пакете NuGet с таким именем и закройте окно NuGet.
Создание объекта TraceProcessor
Измените Program.cs на следующее содержимое:
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"); } } }
Укажите имя трассировки, используемое при запуске проекта.
В обозревателе решений щелкните проект правой кнопкой мыши и выберите "Свойства". Перейдите на вкладку "Отладка" и введите путь к файлу трассировки (.etl) в поле "Аргументы приложения".
Если у вас еще нет файла трассировки, вы можете использовать Windows Performance Recorder для его создания.
Запустите приложение.
Выберите "Отладка", "Начать без отладки", чтобы запустить код.
Использование TraceProcessor для доступа к командным строкам процесса, содержащимся в трассировке
Измените Program.cs на следующее содержимое:
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); } } } }
Снова запустите приложение.
На этот раз вы должны увидеть список командных строк всех процессов, которые выполнялись во время записи трассировки.
Дальнейшие шаги
В этом кратком руководстве вы создали консольное приложение, установили TraceProcessor и использовали его для доступа к командным строкам процессов из трассировки ETW. Теперь у вас есть приложение, которое получает доступ к данным трассировки.
Сведения о процессе — это только один из многих типов данных, хранящихся в трассировке ETW, к которым может получить доступ ваше приложение.
Следующим шагом является более подробно ознакомиться с TraceProcessor и другими источниками данных, к которым он может получить доступ.
Windows developer