ReadEventLog函数从指定的事件日志读取整个条目。该函数可用于以正向或反向时间顺序读取日志条目。
BOOL ReadEventLog(
HANDLE 【hEventLog】, | //处理事件日志 |
DWORD 【dwReadFlags】, | //指定如何读取日志 |
DWORD 【dwRecordOffset】, | //第一个记录数 |
LPVOID 【lpBuffer】, | //读取数据缓冲区的地址 |
DWORD 【nNumberOfBytesToRead】, | //要读取的字节数 |
DWORD *【pnBytesRead】, | //读取的字节数 |
DWORD *【pnMinNumberOfBytesNeeded】 | //下一个记录所需的字节数 |
); |
参数
【hEventLog】
标识要读取的事件日志。该句柄由OpenEventLog函数返回。
【dwReadFlags】
指定读取操作如何继续。此参数可以是以下值的任意组合:
值 | 含义 |
EVENTLOG_FORWARDS_READ | 日志按照时间顺序读取。 |
EVENTLOG_BACKWARDS_READ | 日志以相反的时间顺序读取。 |
EVENTLOG_SEEK_READ | 读取操作从【dwRecordOffset】参数指定的记录继续。如果使用此标志,【dwReadFlags】也必须指定EVENTLOG_FORWARDS_READ或EVENTLOG_BACKWARDS_READ。如果缓冲区足够大,可以在指定的查找位置读取多于一条记录;附加标志指示连续读取操作的方向。 |
EVENTLOG_SEQUENTIAL_READ | 读取操作使用该句柄从上次调用顺序进行到ReadEventLog函数。 |
【dwRecordOffset】
指定读取操作应该开始的日志条目记录号。除非【dwReadFlags】参数包含EVENTLOG_SEEK_READ标志,否则此参数将被忽略。
【lpBuffer】
指向从事件日志读取的数据的缓冲区。即使【nNumberOfBytesToRead】参数为零,此参数也不能为NULL。
缓冲区将填充EVENTLOGRECORD结构。
【nNumberOfBytesToRead】
指定缓冲区的大小(以字节为单位)。该函数将读取与缓冲区相同的整个日志条目;该函数不会返回部分条目,即使缓冲区中有空格。
【pnBytesRead】
指向接收函数读取的字节数的变量。
【pnMinNumberOfBytesNeeded】
指向接收下一个日志条目所需字节数的变量。此计数仅在ReadEventLog返回零且GetLastError返回ERROR_INSUFFICIENT_BUFFER时有效。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
当此函数返回时,错误日志中的读取位置将通过读取的记录数进行调整。只返回一整个事件日志记录。
注意此源的配置文件名也可能是其他源的配置文件名(几个源可以作为单个日志文件下的子项存在)。因此,此函数可能会返回由多个源记录的事件。
也可以看看
ClearEventLog, CloseEventLog, EVENTLOGRECORD, OpenEventLog, ReportEvent