我使用点击数过滤器:
session.EnableKernelProvider(KernelTraceEventParser.Keywords.DiskFileIO |
KernelTraceEventParser.Keywords.FileIOInit |
KernelTraceEventParser.Keywords.FileIO);
我订阅了DiskIORead
和FileIORead
事件。
如果我通过记事本打开文件,则不会发生该事件。
但是,如果我通过记事本++打开文件,则会发生这种情况。
我尝试使用与您在问题中发布的配置相同的配置,并且在打开记事本时可以看到事件触发器
using (var kernelSession = new TraceEventSession(KernelTraceEventParser.KernelSessionName))
{
Console.CancelKeyPress += delegate (object sender, ConsoleCancelEventArgs e) { kernelSession.Dispose(); };
kernelSession.EnableKernelProvider
( KernelTraceEventParser.Keywords.DiskFileIO |
KernelTraceEventParser.Keywords.FileIO |
KernelTraceEventParser.Keywords.FileIOInit
);
var kernel = kernelSession.Source.Kernel;
kernel.FileIORead += HandleFileIoRead;
kernel.DiskIORead += HanleDiskIORead;
kernelSession.Source.Process();
}
private static void HandleFileIoRead(FileIOReadWriteTraceData data)
{
if(data.ProcessName=="notepad")
Console.WriteLine("Hellonotepad" +data);
}