c# - 在没有 list 文件的情况下卸载事件源 (ETW)?

标签 c# etw eventsource etw-eventsource

在不使用 list 的情况下卸载/删除以前安装的事件源的最佳方法是什么?

例如。 如果我有类似的东西:


    [EventSource(Name = "Corporation-Module-X")]
    public sealed class XEventSource : EventSource
    {
        //...
    }

为了安装事件源,我使用wevtutil {im |安装 list

如果我有 list ,卸载很容易。但是我可以在没有 list 文件的情况下卸载事件源吗?


我将尝试阐明我如何使用事件源以及我为什么要删除它。

使用 wevtutil 安装事件源后,事件源作为事件跟踪提供程序可见。因此,我可以在性能监视器中创建新的数据收集器集,我将在其中添加我的事件源(连同一些性能计数器)。 它看起来像这样:

ETW EventSource in new collector set

可能发生的情况是事件源被重命名或删除。 例如。使用 wevtutil 重命名和安装后。


    [EventSource(Name = "Corporation-Module-Y")]
    public sealed class XEventSource : EventSource
    {
        //...
    }

事件跟踪提供程序中仍然存在旧的:

ETW New event source

我想查询所有以 Corporation* 开头的已安装事件提供程序,并在安装新事件提供程序之前将其删除。

enter image description here

谢谢!

最佳答案

不需要卸载任何东西,因为如果您 EventSource list 没有注册. list 发送 ManifestData Event

enter image description here

监听器工具(Perfview、Windows Performance Toolkit),以便他们可以解释记录的数据。

注册提供商时,您可以dump the manifest并再次使用 wevtutil 将其删除。

关于c# - 在没有 list 文件的情况下卸载事件源 (ETW)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55262193/

相关文章:

c# - 如何收听 TPL TaskStarted/TaskCompleted ETW 事件

.net-4.5 - 为什么在 EventSource 的子类上实现接口(interface)会在运行时抛出异常?

amazon-web-services - 是否有适合向浏览器发送实时更新的 aws 服务?

c# - 在C#中播放声音

c# - 防止在 asp.net 输入字段中回车

c# - 事件源与事件提供者

javascript - 如何捕获 SSE Eventsource 确认

c# - 单击项目时,如何删除包裹 listBox1 中所选项目的蓝色?

javascript - 使用 Identity Server 4 和 ASP.NET Identity 添加外部登录