У меня есть приложение 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
}
}
// Код заполнения данных
Если кто-либо знает о подобной проблеме или работал над аналогичной проблемой, пожалуйста,дайте мне знать решение.Пожалуйста, обратитесь к приведенному выше фрагменту кода и дайте мне знать следующее: а) Каковы неправильные параметры.б) Есть ли у них какой-то другой способ чтения журналов событий.
Заранее спасибо.
- Ганеш