ReadEventLogW 関数 (winbase.h)

指定したイベント ログから、指定した数のエントリを読み取ります。 関数を使用すると、ログ エントリを時系列または逆の時系列で読み取ることができます。

構文

BOOL ReadEventLogW(
  [in]  HANDLE hEventLog,
  [in]  DWORD  dwReadFlags,
  [in]  DWORD  dwRecordOffset,
  [out] LPVOID lpBuffer,
  [in]  DWORD  nNumberOfBytesToRead,
  [out] DWORD  *pnBytesRead,
  [out] DWORD  *pnMinNumberOfBytesNeeded
);

パラメーター

[in] hEventLog

読み取るイベント ログへのハンドル。 OpenEventLog 関数は、このハンドルを返します。

[in] dwReadFlags

ログ ファイルの読み取り方法を示すには、次のフラグ値を使用します。 このパラメーターには、次のいずれかの値を含める必要があります (フラグは相互に排他的です)。

意味
EVENTLOG_SEEK_READ
0x0002
dwRecordOffset パラメーターで指定されたレコードからの読み取りを開始します。

関数がログ ファイルのサイズを判断できない場合、このオプションは大きなログ ファイルでは機能しない可能性があります。 詳細については、サポート技術情報の記事「177199」を参照してください。

EVENTLOG_SEQUENTIAL_READ
0x0001
レコードを順番に読み取る。

これが最初の読み取り操作である場合、EVENTLOG_FORWARDS_READ EVENTLOG_BACKWARDS_READ フラグによって、最初に読み取るレコードが決定されます。

 

連続する読み取り操作の方向を示すには、次のいずれかのフラグを指定する必要があります (フラグは相互に排他的です)。

意味
EVENTLOG_FORWARDS_READ
0x0004
ログは時系列 (最も古いものから新しい順) で読み取られます。

これが既定値です。

EVENTLOG_BACKWARDS_READ
0x0008
ログは、逆の時系列順 (最新から最も古い順) で読み取られます。

[in] dwRecordOffset

読み取り操作を開始するログ エントリのレコード番号。 dwReadFlagsEVENTLOG_SEEK_READ フラグが含まれている場合を除き、このパラメーターは無視されます。

[out] lpBuffer

1 つ以上の EVENTLOGRECORD 構造体を受け取るアプリケーション割り当てバッファー。 nNumberOfBytesToRead パラメーターが 0 の場合でも、このパラメーターを NULL にすることはできません。

このバッファーの最大サイズは0x7ffff バイトです。

[in] nNumberOfBytesToRead

lpBuffer バッファーのサイズ (バイト単位)。 この関数は、バッファーに収まるのと同じ数のログ エントリを読み取ります。関数は部分的なエントリを返しません。

[out] pnBytesRead

関数によって読み取られたバイト数を受け取る変数へのポインター。

[out] pnMinNumberOfBytesNeeded

lpBuffer バッファーの必要なサイズを受け取る変数へのポインター。 この値は、この関数が 0 を返し、 GetLastErrorERROR_INSUFFICIENT_BUFFERを返す場合にのみ有効です。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

この関数が正常に返されると、イベント ログ内の読み取り位置は、読み取られたレコードの数によって調整されます。

メモ このソースの構成済みファイル名は、他のソース用に構成されたファイル名である場合もあります (複数のソースが 1 つのログの下にサブキーとして存在する可能性があります)。 したがって、この関数は、複数のソースによってログに記録されたイベントを返す場合があります。
 

例については、「 イベント情報のクエリ」を参照してください。

注意

winbase.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして ReadEventLog を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll
API セット ext-ms-win-advapi32-eventlog-ansi-l1-1-0 (Windows 10 バージョン 10.0.10240 で導入)

こちらもご覧ください

ClearEventLog

CloseEventLog

EVENTLOGRECORD

イベント ログ関数

OpenEventLog

ReportEvent