Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Попробуйте использовать 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