Windows 如何注册为NT内核事件的实时ETW使用者?

Windows 如何注册为NT内核事件的实时ETW使用者?,windows,debugging,events,wmi,Windows,Debugging,Events,Wmi,我已经能够使用logman成功地转储一些内核跟踪。但是,我希望能够通过编程实现应用程序中内核事件的实时消耗(主要是线程/进程创建/删除和文件I/O)。执行此任务的最佳方法是什么?在中启用内核事件。在传递给StartTrace的过程中,EnableFlags包含不同内核事件提供程序的各种标志。将事件跟踪属性中的LogFileMode设置为实时使用者。然后,您可以使用来使用事件。请注意,StartTrace可能会失败,错误\u已经存在,此时如果您需要更改会话属性,您将希望使用ControlTrace

我已经能够使用logman成功地转储一些内核跟踪。但是,我希望能够通过编程实现应用程序中内核事件的实时消耗(主要是线程/进程创建/删除和文件I/O)。执行此任务的最佳方法是什么?

在中启用内核事件。在传递给StartTrace的过程中,EnableFlags包含不同内核事件提供程序的各种标志。将事件跟踪属性中的LogFileMode设置为实时使用者。然后,您可以使用来使用事件。

请注意,StartTrace可能会失败,错误\u已经存在,此时如果您需要更改会话属性,您将希望使用ControlTrace。还请注意,如果启用了UAC,则必须以“管理员”身份运行程序;如果您正在调试,您还需要以管理员身份运行VisualStudio。您的程序还需要将其清单(如果您有清单)设置为“作为管理员”以获得权限

如果您在MSDN上搜索OpenTrace、ProcessTrace和StartTrace,您将找到指向各种示例的链接,这些示例将为您提供所需内容