ETW は目的に対して非常に複雑なようです。イベント ログに書き込む手順は次のとおりです。
a) 1 回限り (通常、これはアプリケーションのインストール中に行います)アプリケーションを Event Provider として登録します。EventMessageFile
本当に必要なのはエントリだけです:
- キー = HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\MyCoolGame
- 文字列名 (REG_EXPAND_SZ) = EventMessageFile
- 文字列値 = C:\Windows\Microsoft.NET\Framework\v4.0.30319\ EventLogMessages.dll
b) プログラムの起動時:イベント ソースを登録し、ハンドルを受け取ります。
hEventLog = RegisterEventSource(NULL, lpszAppNameName);
c) ReportEvent 関数を使用して、イベント ログにエントリを書き込みます。
TCHAR szLogBuffer[] = _T("Started new multiplayer server.");
const TCHAR *lpszEventStrings[2] = {szLogBuffer, NULL};
ReportEvent(hEventLog, EVENTLOG_INFORMATION_TYPE, 0, 1, NULL, 1, 0, lpszEventStrings, NULL)
d) プログラムのシャットダウン時:
DeregisterEventSource(hEventLog);