如何强制ETW发送以前错过的事件

时间:2018-06-21 16:42:05

标签: c++ windows filesystems tracing etw

我想使用ETW Microsoft-Windows-Kernel-File提供程序捕获文件读取。看来我需要使用FileObject(或FileKey)属性来关联两种类型的事件:

创建名称

{
    "Type": "name create",
    "FileObject": 123,
    "FileName": "\\Device\\HarddiskVolume3\\file.txt"
}

阅读

{
    "Type": "read",
    "FileObject": 123,
    ...
}

我可以组合成一个file read事件

{
    "Type": "file read",
    "FileObject": 123,
    "FileName": "\\Device\\HarddiskVolume3\\file.txt",
    ...
}

问题是我只收到name create个新打开文件的事件。如果尚未关闭文件,我将不会收到name create事件,并且无法使read事件成为事件来获取文件名。在附加我的订阅者之前,name create已提供了该信息。

问题:是否可以强制ETW发送此类关联所需的所有事件?换句话说,我的订户如何才能检索过去的缓存name create事件?

我正在使用C ++,krabsMicrosoft-Windows-Kernel-File {EDD08927-9CC4-4E65-B970-C2560FB5C289}提供程序(未记录)。我已经试验了内核提供程序:diskfile,而且似乎也存在相关性问题。

0 个答案:

没有答案