次の方法で共有


ReportEventA 関数 (winbase.h)

指定したイベント ログの末尾にエントリを書き込みます。

構文

BOOL ReportEventA(
  [in] HANDLE hEventLog,
  [in] WORD   wType,
  [in] WORD   wCategory,
  [in] DWORD  dwEventID,
  [in] PSID   lpUserSid,
  [in] WORD   wNumStrings,
  [in] DWORD  dwDataSize,
  [in] LPCSTR *lpStrings,
  [in] LPVOID lpRawData
);

パラメーター

[in] hEventLog

イベント ログへのハンドル。 RegisterEventSource 関数は、このハンドルを返します。

SP2 を使用する Windows XP の時点では、このパラメーターを Security ログへのハンドルにすることはできません。 Security ログにイベントを書き込むには、AuthzReportSecurityEvent 関数を使用します。

[in] wType

ログに記録されるイベントの種類。 このパラメーターには、次のいずれかの値を指定できます。

価値 意味
EVENTLOG_SUCCESS
0x0000
情報イベント
EVENTLOG_AUDIT_FAILURE
0x0010
失敗監査イベント
EVENTLOG_AUDIT_SUCCESS
0x0008
成功監査イベント
EVENTLOG_ERROR_TYPE
0x0001
エラー イベント
EVENTLOG_INFORMATION_TYPE
0x0004
情報イベント
EVENTLOG_WARNING_TYPE
0x0002
警告イベント
 

イベントの種類の詳細については、「イベントの種類の」を参照してください。

[in] wCategory

イベント カテゴリ。 これはソース固有の情報です。カテゴリには任意の値を指定できます。 詳細については、「イベント カテゴリの」を参照してください。

[in] dwEventID

イベント識別子。 イベント識別子は、イベント ソースに関連付けられているメッセージ ファイル内のエントリを指定します。 詳細については、「イベント識別子の」を参照してください。

[in] lpUserSid

現在のユーザーのセキュリティ識別子へのポインター。 セキュリティ識別子が不要な場合、このパラメーターは NULL できます。

[in] wNumStrings

lpStrings パラメーターが指す配列内の挿入文字列の数。 値が 0 の場合は、文字列が存在しません。

[in] dwDataSize

ログに書き込むイベント固有の生 (バイナリ) データのバイト数。 このパラメーターが 0 の場合、イベント固有のデータは存在しません。

[in] lpStrings

イベント ビューアーがユーザーに文字列を表示する前にメッセージにマージされる、null で終わる文字列の配列を含むバッファーへのポインター。 wNumStrings が 0 の場合でも、このパラメーターは有効なポインター (または nullする必要があります。 各文字列は 31,839 文字に制限されています。

Windows Vista より前: 各文字列は 32,000 文字に制限されています。

[in] lpRawData

バイナリ データを含むバッファーへのポインター。 dwDataSize パラメーターが 0 の場合でも、このパラメーターは有効なポインター (または null) である必要があります。

戻り値

関数が成功した場合、戻り値は 0 以外で、エントリがログに書き込まれたことを示します。

関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError呼び出します。この呼び出しは、次のいずれかの拡張エラー コードを返します。

エラー コード 意味
ERROR_INVALID_PARAMETER
パラメーターの 1 つが無効です。

このエラーは、ログに記録するメッセージ データが大きすぎる場合、Windows Server 2003 で返されます。 dwDataSize パラメーターが 261,991 (0x3ff67) より大きい場合、このエラーは Windows Server 2003 上の RPC サーバーによって返されます。

ERROR_NOT_ENOUGH_MEMORY
操作を完了するために使用できるメモリ リソースが不足しています。
RPC_S_INVALID_BOUND
配列の境界が無効です。

このエラーは、ログに記録されるメッセージ データが大きすぎる場合に返されます。 Windows Vista 以降では、dwDataSize パラメーターが 61,440 (0xf000) より大きい場合、このエラーが返されます。

RPC_X_BAD_STUB_DATA
スタブが不適切なデータを受信しました。

このエラーは、ログに記録されるメッセージ データが大きすぎる場合に Windows XP で返されます。 このエラーは、dwDataSize パラメーターが 262,143 (0x3ffff) より大きい場合、Windows XP 上の RPC サーバーによって返されます。

その他の
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。

備考

この関数は、イベントをログに記録するために使用されます。 エントリは、hEventLog パラメーターによって識別されるソースの構成済みログの末尾に書き込まれます。 ReportEvent 関数は、ログにエントリを格納する前に、時間、エントリの長さ、およびオフセットを追加します。 関数でユーザー名を追加できるようにするには、lpUserSid パラメーターにユーザーの SID を指定する必要があります。

メッセージ データのサイズには、アプリケーションを実行するクライアントとメッセージが記録されるサーバーの両方で使用される Windows のバージョンに応じて、ログに記録できるサイズの制限が異なります。 サーバーは、RegisterEventSource 関数に渡される lpUNCServerName パラメーターによって決定されます。 Windows のバージョンによって異なるサイズ制限を超えると、さまざまなエラーが返されます。

ログに記録する文字列に %nが含まれている場合 (n が整数値 (たとえば、%1) である場合、イベント ビューアーはそれを挿入文字列として扱います。 IPv6 アドレスにはこの文字シーケンスを含めることができるため、書式指定子 (!S!) を使用して、IPv6 アドレスを含むイベント メッセージをログに記録します。 この指定子は、文字列をリテラルで使用し、それ以上の拡張を実行しないように書式設定コードに指示します (例: "iPv6 アドレスは:%1!S!").

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

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winbase.h (Windows.h を含む)
ライブラリ Advapi32.lib
DLL Advapi32.dll

関連項目

ClearEventLog の

CloseEventLog の

イベント ログ ファイル形式の

イベント ログ関数 を する

OpenEventLog

ReadEventLog の

RegisterEventSource の