Сбой API ReadEventLog () с кодом ошибки 87 в Windows Server 2008 R2 при чтении журналов событий приложений / системы / безопасности из системы - PullRequest
1 голос
/ 28 июня 2010

У меня есть приложение MFC, которое считывает системные журналы (т.е. Приложение / Система / Безопасность ) в Windows Server 2008 R2 в среде WOW64.Я столкнулся с проблемой с функцией SDK :: ReadEventLog () в Windows Server 2008 R2 .Ниже приведен фрагмент кода, но тот же код / ​​API отлично работает в среде Windows XP WOW64 и x64.Код ошибки «87» относится к «Параметр неверен», но, по моему мнению, параметры, которые я передал в функцию :: ReadEventLog () , кажутся правильными.

[Код]

// BufferSize.const int BUFFER_SIZE = 1024 * 10
BYTE l_bBufferSize [BUFFER_SIZE];
EVENTLOGRECORD * l_pEvntLogRecord = NULL;

l_pEvntLogRecord = (EVENTLOGRBORD =; EVENTLOGRBORD =;:: SetLastError (0);

/ * Настройте «счетчик» для чтения журналов.'l_nReadRecordIndex' отображается с помощью элемента управления списком, например, при нажатии клавиши, 'l_nReadRecordIndex' устанавливается как «GetCountPerPage () + 1», это один случай, поскольку их много.* /

DWORD l_dwLogCounter = (GetTotalNumberOfRecords () - l_nReadRecordIndex) + 1;

// Чтение журналов в соответствии с "nCntToReadRecords".

для (l_dwOgLoC)nCntToReadRecords; l_dwLogCounter--, l_nNoOfRecTobeRead ++) {

// Получить фактическую позицию для чтения.

if (0! = :: ReadEventLog (m_hEventLogHandle, EVENTLOG_SARDWog_LOR_WOR_LOR_RE_LOR_RED_RE_DRE_REDREAD), BUFFER_SIZE, & l_dwReadBytes, & l_dwNeedBytes))

{
     DWORD l_dwErrCode = 0;
     l_dwErrCode = ::GetLastError();    //87 is returned
     return FALSE
}

}

// Код заполнения данных

Если кто-либо знает о подобной проблеме или работал над аналогичной проблемой, пожалуйста,дайте мне знать решение.Пожалуйста, обратитесь к приведенному выше фрагменту кода и дайте мне знать следующее: а) Каковы неправильные параметры.б) Есть ли у них какой-то другой способ чтения журналов событий.

Заранее спасибо.

- Ганеш

1 Ответ

3 голосов
/ 28 ноября 2012

Это ошибка, проверьте эту запись в MS KB http://support.microsoft.com/kb/177199

...