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
ログに記録されるイベントの種類。 このパラメーターには、次のいずれかの値を指定できます。
イベントの種類の詳細については、「イベントの種類の」を参照してください。
[in] wCategory
イベント カテゴリ。 これはソース固有の情報です。カテゴリには任意の値を指定できます。 詳細については、「イベント カテゴリの」を参照してください。
[in] dwEventID
イベント識別子。 イベント識別子は、イベント ソースに関連付けられているメッセージ ファイル内のエントリを指定します。 詳細については、「イベント識別子の」を参照してください。
[in] lpUserSid
現在のユーザーのセキュリティ識別子へのポインター。 セキュリティ識別子が不要な場合、このパラメーターは NULL
[in] wNumStrings
lpStrings パラメーターが指す配列内の挿入文字列の数。 値が 0 の場合は、文字列が存在しません。
[in] dwDataSize
ログに書き込むイベント固有の生 (バイナリ) データのバイト数。 このパラメーターが 0 の場合、イベント固有のデータは存在しません。
[in] lpStrings
イベント ビューアーがユーザーに文字列を表示する前にメッセージにマージされる、null で終わる文字列の配列を含むバッファーへのポインター。 wNumStrings が 0 の場合でも、このパラメーターは有効なポインター (または null
Windows Vista より前: 各文字列は 32,000 文字に制限されています。
[in] lpRawData
バイナリ データを含むバッファーへのポインター。
戻り値
関数が成功した場合、戻り値は 0 以外で、エントリがログに書き込まれたことを示します。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
エラー コード | 意味 |
---|---|
|
パラメーターの 1 つが無効です。
このエラーは、ログに記録するメッセージ データが大きすぎる場合、Windows Server 2003 で返されます。 dwDataSize パラメーターが 261,991 (0x3ff67) より大きい場合、このエラーは Windows Server 2003 上の RPC サーバーによって返されます。 |
|
操作を完了するために使用できるメモリ リソースが不足しています。 |
|
配列の境界が無効です。
このエラーは、ログに記録されるメッセージ データが大きすぎる場合に返されます。 Windows Vista 以降では、dwDataSize パラメーターが 61,440 (0xf000) より大きい場合、このエラーが返されます。 |
|
スタブが不適切なデータを受信しました。
このエラーは、ログに記録されるメッセージ データが大きすぎる場合に 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 の
イベント ログ関数 を
ReadEventLog の
RegisterEventSource の