我想使用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 ++,krabs,Microsoft-Windows-Kernel-File {EDD08927-9CC4-4E65-B970-C2560FB5C289}
提供程序(未记录)。我已经试验了内核提供程序:disk和file,而且似乎也存在相关性问题。