I am experimenting with TraceEventSession for a monitor like application. The goal is to detect which files a given application accesses. According to my research, the following should work, but I get no events when notepad opens a file. Any insights to what I am doing wrong?
Process process = new(); process.StartInfo.FileName = "notepad.exe"; process.Start(); var targetPid = process.Id; Console.WriteLine($"Started process with PID: {targetPid}"); using (var session = new TraceEventSession("monitor_test")) { session.EnableKernelProvider(KernelTraceEventParser.Keywords.FileIOInit); session.Source.Kernel.FileIORead += (data) => { if (data.ProcessID == targetPid) { Console.WriteLine($"[File Open] Process {data.ProcessID} opened: {data.FileName}"); } }; session.Source.Kernel.FileIOCreate += (data) => { if (data.ProcessID == targetPid) { Console.WriteLine($"[File Create] Process {data.ProcessID} opened: {data.FileName}"); } }; session.Source.Kernel.FileIOWrite += (data) => { if (data.ProcessID == targetPid) { Console.WriteLine($"[File Write] Process {data.ProcessID} wrote to: {data.FileName}"); } }; session.Source.Process();
Process process = new(); process.StartInfo.FileName = "notepad.exe"; process.Start(); var targetPid = process.Id; Console.WriteLine($"Started process with PID: {targetPid}"); using (var session = new TraceEventSession("monitor_test")) { session.EnableKernelProvider(KernelTraceEventParser.Keywords.FileIOInit); session.Source.Kernel.FileIORead += (data) => { if (data.ProcessID == targetPid) { Console.WriteLine($"[File Open] Process {data.ProcessID} opened: {data.FileName}"); } }; session.Source.Kernel.FileIOCreate += (data) => { if (data.ProcessID == targetPid) { Console.WriteLine($"[File Create] Process {data.ProcessID} opened: {data.FileName}"); } }; session.Source.Kernel.FileIOWrite += (data) => { if (data.ProcessID == targetPid) { Console.WriteLine($"[File Write] Process {data.ProcessID} wrote to: {data.FileName}"); } }; session.Source.Process();
Recent Announcements
No replies yet
Join the Discord to continue the conversation
C
C#
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.