首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事件日志最早的记录号

事件日志最早的记录号
EN

Stack Overflow用户
提问于 2010-06-02 22:24:39
回答 1查看 2.2K关注 0票数 3

我正在尝试使用新的事件日志API从windows事件日志中获取最旧的记录号,但无法让API返回与事件查看器显示相同的答案(查看详细信息EventRecordID)。下面是我使用的一些示例代码:

代码语言:javascript
复制
EVT_HANDLE log = EvtOpenLog(NULL, _logName, EvtOpenChannelPath);

EVT_VARIANT buf;
DWORD need = 0;
int vlen = sizeof(EVT_VARIANT);

ZeroMemory(&buf, vlen);
EvtGetLogInfo(log, EvtLogOldestRecordNumber, vlen, &buf, &need);

UINT64 old = buf.UInt64Val;

EvtClose(log);

API似乎要做的是返回日志中最旧事件的记录号,而不是最早可访问的事件……我的意思是,假设您的日志中有10条记录,1-10,然后清除日志。接下来插入的10个事件将是11-20。如果使用API,它将返回1,而不是像事件查看器显示的那样返回11。如果您尝试使用EvtQuery/EvtNext检索事件1,它将失败,并且不会返回事件--正如我所预期的那样。

有没有人有这种方法的经验?我做错了什么?我已经成功地将该方法用于其他属性(即EvtLogNumberOfLogRecords),但无法获得此属性(EvtLogOldestRecordNumber)的预期行为。

http://msdn.microsoft.com/en-us/library/aa385385(v=VS.85).aspx

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-07 21:24:23

我不能让新的API对最旧的记录号起作用,必须恢复使用旧的API来检索最旧的记录号。

msdn.microsoft.com/en-us/library/aa363665(VS.85).aspx

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

https://stackoverflow.com/questions/2958610

复制
相关文章

相似问题

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