使用C ++ / Win32 API我自己创建了一个事件跟踪会话。我的应用程序必须支持NT5,因此我无法更新更新的API。
我正在使用循环模式标志和实时标志。
我有一切工作除了一个障碍,当我重新启动机器时,ETW会话不会持久,我的服务启动并重新创建ETW会话(当重新启动已擦除它),然后导致日志文件被覆盖。
根据MSDN,我必须使用" global" NT5上的记录器,其中只能有一个,或者一个" AutoLogger"在NT6上可以有很多。但MSDN说:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363687(v=vs.85).aspx
AutoLogger会话会增加系统启动时间,应该是 谨慎使用。想要在期间捕获信息的服务 启动过程应考虑将控制器逻辑添加到自身 使用AutoLogger会话。
对于我想要做的事情听起来有些过分。确实,我的服务确实包含"控制器"逻辑本身。
那么如何让ETW在下次重启时保留跟踪会话?或者,如果ETW文件已经存在,如何在下次重启时重新创建我的ETW会话?