指定したイベントログからエントリを読み取る
Declare Function ReadEventLog Lib "advapi32.dll" Alias "ReadEventLogA" ( _
ByVal hEventLog As Long, ByVal dwReadFlags As Long, ByVal dwRecordOffset As Long, _
lpBuffer As EVENTLOGRECORD, ByVal nNumberOfBytesToRead As Long, _
pnBytesRead As Long, pnMinNumberOfBytesNeeded As Long) As Long
Declare Function ReadEventLog Lib "advapi32.dll" Alias "ReadEventLogA" ( _
ByVal hEventLog As Integer, ByVal dwReadFlags As Integer, ByVal dwRecordOffset As Integer, _
lpBuffer As EVENTLOGRECORD, ByVal nNumberOfBytesToRead As Integer, _
pnBytesRead As Integer, pnMinNumberOfBytesNeeded As Integer) As Integer
BOOL ReadEventLog(
HANDLE hEventLog,
DWORD dwReadFlags,
DWORD dwRecordOffset,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
DWORD *pnBytesRead,
DWORD *pnMinNumberOfBytesNeeded
);
引数
hEventLog
イベントログのハンドルを指定dwReadFlags
ログの読み取り方法を指定する定数dwRecordOffset
読み取り操作を開始するログエントリのレコード番号 dwReadFlags パラメータで EVENTLOG_SEEK_READ定数を指定しないと無視されるlpBuffer
(戻り値)イベントログから読み込んだデータを受け取るEVENTLOGRECORD構造体nNumberOfBytesToRead
lpBufferのサイズ(バイト単位)pnBytesRead
(戻り値)実際に読み込んだバイト数を受け取るLong型変数pnMinNumberOfBytesNeeded
(戻り値)次のログエントリの読み取りに必要なバイト数を受け取るLong型変数 この数値は関数の呼び出しが失敗し、その直後にGetLastError()関数が ERROR_INSUFFICIENT_BUFFER を返した場合だけ有効戻り値
正常終了のとき 0以外備考
エラーのとき 0
関数の呼び出しが成功すると、読み取ったレコード数によってエラーログの読み取り位置が調整される。 必ず整数個のイベントログレコードが読み取られる。 つまり、レコードの一部分だけが読み取られることはない。dwReadFlagsの定数
Public Const EVENTLOG_SEQUENTIAL_READ = 1& 'dwRecordOffsetで指定するレコードから読み取る
Public Const EVENTLOG_SEEK_READ = 2& '同じハンドルを指定した ReadEventLog 関数の
'前回の呼び出しの続きから読み取り操作を行う。
'EVENTLOG_SEEK_READと同時にセットはできない
'複数のレコードを読み取ることができる場合、以下のフラグで順番を指定する
Public Const EVENTLOG_FORWARDS_READ = 4& 'ログを日付の古い順に読み取る
Public Const EVENTLOG_BACKWARDS_READ = 8& 'ログを日付の新しい方から順に読み取る