如何在驱动程序级别使用ETW事件?

时间:2013-07-10 03:03:13

标签: windows etw

从我的Windows驱动程序内部,我想知道如何:

a)开启某些内置提供商

b)通过提供回调函数(我想做某事)实时消耗事件,这是我的驱动程序的一部分。

c)关闭提供商。

PS:我已经松散地使用了"打开"并且"关闭"。在Windows ETW中,我认为它被称为"启用"提供者。

到目前为止,我一直在网上搜索有关如何执行此操作的信息,但尚未发现任何内容。

1 个答案:

答案 0 :(得分:0)

驱动程序只能提供ETW事件 - 它们无法控制会话或使用事件。

对于a)& c)使用StartTrace(),然后使用EnableTraceEx2()。这必须在用户模式下完成。

对于b)使用OpenTrace(),然后使用ProcessTrace()。这必须在用户模式下完成。

驱动程序的ETW API:http://msdn.microsoft.com/en-us/library/windows/hardware/ff545707(v=vs.85).aspx

用户模式代码的ETW API:http://msdn.microsoft.com/en-us/library/aa363795(v=vs.85).aspx