首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ETW -Windows8.1- EventWrittenEventArgs有效载荷缺失数据

ETW -Windows8.1- EventWrittenEventArgs有效载荷缺失数据
EN

Stack Overflow用户
提问于 2015-09-18 15:28:01
回答 1查看 226关注 0票数 0

我在一个PCL中有一些ETW代码,它被引用,并在Windows8.1应用程序中使用,该应用程序已经工作了几个月。具体来说,这一行代码:

代码语言:javascript
运行
复制
WriteEvent((int)errorId, message, (useSysLog ? sysLogErrorId : SysLogSeverity.NotSpecified));

一直在向EventWrittenEventArgsEventWrittenEventArgsOnEventWritten函数的EventListener中的OnEventWritten属性发送对象数组。

我将得到一个Count为2的Count,它将包含一个string和一个SysLogSeverity实例。

我最近将我的Visual升级到2015年,现在,我的Payload只包含一个属性-- stringSysLogSeverity不再在OnEventWritten中运行。

升级到VS2015会是我的问题吗?在进行升级时,ETW代码所在的库没有改变。我已经检查了我的项目的git历史,没有任何程序集版本已经改变。

我不知道为什么会发生这种情况,我很想知道如何调试这个/可能发生的事情。

更新:

下面是我的助手方法,它调用WriteEvent函数:

代码语言:javascript
运行
复制
[NonEvent]
    private void _WriteEvent(int errorId, string message, SysLogSeverity sysLogSeverity)
    {
        if (_errorLevelsMap.ContainsKey((ErrorIds)errorId))
        {
            sysLogSeverity = _errorLevelsMap[(ErrorIds)errorId];
        }

        if (this.IsEnabled())
        {
            WriteEvent((int)errorId, message, sysLogSeverity);
        }
    }

以下是_errorLevelsMap的定义:

代码语言:javascript
运行
复制
    private readonly Dictionary<ErrorIds, SysLogSeverity> _errorLevelsMap = new Dictionary<ErrorIds, SysLogSeverity>
    {
        { ErrorIds.Critical, SysLogSeverity.Critical },
        { ErrorIds.Error, SysLogSeverity.Error },
        { ErrorIds.Informational, SysLogSeverity.Informational },
        { ErrorIds.Verbose, SysLogSeverity.Debug },
        { ErrorIds.Warning, SysLogSeverity.Warning }
    };

签名匹配,但Payload只包含message,而不包含sysLogErrorId

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-18 16:50:46

在调用WriteEvent的方法中需要有相同数量的参数,因为EventSource库根据这些参数而不是传递给WriteEvent的参数生成清单。

来自_EventSourceUsersGuide.docx (第6页):

传递给ETW方法的参数的数量和类型必须与传递给它调用的WriteEvent重载的类型完全匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32655753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档