从我的 Windows 驱动程序内部,我想知道如何:
a) 打开某些内置提供程序
b)通过提供作为我的驱动程序一部分的回调函数(我想做某事)来实时消费事件。
c) 关闭供应商。
PS:我使用了“打开”和“关闭”这两个词。在 Windows ETW 用语中,我认为它被称为“启用”提供程序。
到目前为止,我一直在网上搜索有关如何执行此操作的信息,但尚未找到任何信息。
驱动程序只能提供 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