Журнал событий самое старое рекордное число

Я пытаюсь использовать новый журнал событий API для получения самого старого рекордного числа от журнала событий окон, но не могу заставить API давать тот же ответ как дисплеи средства просмотра события (смотрящий на детали EventRecordID). Некоторый код кода, который я использую, ниже:

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 как дисплеи средства просмотра события. При попытке получить событие 1 с помощью EvtQuery/EvtNext, то это приведет к сбою и не возвратит событие - как я ожидал бы.

У кого-либо есть опыт с этим методом? Что я делаю неправильно? Я использовал метод успешно с другими свойствами (т.е. EvtLogNumberOfLogRecords), но не могу заставить это свойство (EvtLogOldestRecordNumber) вести себя как ожидалось.

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

1
задан Mitch Freed 4 June 2010 в 06:51
поделиться