ITraceRelogger
COM公式ドキュメント
リロギング機能へのアクセスを提供し、ETW トレースストリームからのイベントを操作および再ログ記録できるようにします。
解説(Remarks)
このインターフェイスは、IA64 アーキテクチャの Windows 7 ではサポートされていません。
メソッド 9
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ログファイルベースの新しい ETW トレースストリームをリロガーに追加します。
| LogfileName | LPWSTR | in | 再ログ記録するイベントを含むファイル。 |
| UserContext | void* | in | これらのイベントを再ログ記録する際のユーザーコンテキスト。 |
| TraceStreamId | ULONGLONG* | out | 追加されたトレースストリームを識別する ID を受け取る。 |
戻り値
Type: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
新しく追加されたストリーム内のイベントは、このリロガーに関連付けられた IEventCallback オブジェクトへのコールバックを生成します。
新しいリアルタイム ETW トレースストリームをリロガーに追加します。
| LoggerName | LPWSTR | in | 再ログ記録するイベントを生成するリアルタイムロガー |
| UserContext | void* | in | これらのイベントを再ログ記録する際のユーザーコンテキスト。 |
| TraceStreamId | ULONGLONG* | out | 追加されたトレースストリームを識別する ID を受け取る。 |
戻り値
Type: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
新しく追加されたストリーム内のイベントは、このリロガーに関連付けられた IEventCallback オブジェクトへのコールバックを生成します。
トレースアクティビティ(開始、停止、および新しいイベントのログ記録)を通知するために、IEventCallback の実装をリロガーに登録します。
| Callback | ITraceEventCallback* | in | トレースアクティビティ情報。 |
戻り値
Type: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
出力トレースログファイルに書き込まれるイベントストリームに、システムが生成したものではないイベントを挿入します。
| Event | ITraceEvent* | in | ストリームに挿入するイベント。 |
戻り値
Type: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
これは、どのイベントを出力トレースログファイルに含めるかを示す主要な方法です。
IEventCallback::OnEvent によって提供された既存のイベントを保持するには、このメソッドを呼び出す必要があります。
新しいイベントを生成します。
| TraceStreamId | ULONGLONG | in | 新しいイベントを関連付けるトレースストリームの ID を指定する。 |
| Flags | DWORD | in | イベントがクラシックかクリムゾンかを示します。 |
| Event | ITraceEvent** | out | 新しく生成されたイベント。 |
戻り値
Type: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
イベントのメタデータは TraceHandle から取得されますが、トレースにログ記録される前に開発者が変更できます。
関連付けられたトレースストリームからコンシューマーへイベントを配信します。
戻り値
Type: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ETW が新しい再ログ記録されたトレースを書き込むファイルを指定します。
| LogfileName | LPWSTR | in | 新しいファイル名。 |
戻り値
Type: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
指定したファイルが既に存在する場合は、新しいトレースで上書きされます。
再ログ記録されたトレースの圧縮を有効または無効にします。
| CompressionMode | BOOLEAN | in | 圧縮を有効にする場合は True、それ以外の場合は false。 |
戻り値
Type: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
既定では、再ログ記録されたトレースで圧縮が有効になります。
圧縮モードは Windows 7 ではサポートされていません。既定では、Windows 7 での圧縮モードは false に設定されます。Windows 7 でこのメソッドを呼び出すと、E_NOTIMPL が返されます。
圧縮モードは Windows 8 または Windows Server 2012 では true に設定されます。
圧縮されたトレースファイルは、Windows 8 または Windows Server 2012 でのみデコードできます。
リロギングプロセスを終了します。
戻り値
Type: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITraceRelogger "{F754AD43-3BCC-4286-8009-9C5DA214E84E}" #usecom global ITraceRelogger IID_ITraceRelogger "{}" #comfunc global ITraceRelogger_AddLogfileTraceStream 3 wstr,sptr,var #comfunc global ITraceRelogger_AddRealtimeTraceStream 4 wstr,sptr,var #comfunc global ITraceRelogger_RegisterCallback 5 sptr #comfunc global ITraceRelogger_Inject 6 sptr #comfunc global ITraceRelogger_CreateEventInstance 7 int64,int,sptr #comfunc global ITraceRelogger_ProcessTrace 8 #comfunc global ITraceRelogger_SetOutputFilename 9 wstr #comfunc global ITraceRelogger_SetCompressionMode 10 int #comfunc global ITraceRelogger_Cancel 11 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ITraceRelogger "{F754AD43-3BCC-4286-8009-9C5DA214E84E}" #usecom global ITraceRelogger IID_ITraceRelogger "{}" #comfunc global ITraceRelogger_AddLogfileTraceStream 3 wstr,sptr,sptr #comfunc global ITraceRelogger_AddRealtimeTraceStream 4 wstr,sptr,sptr #comfunc global ITraceRelogger_RegisterCallback 5 sptr #comfunc global ITraceRelogger_Inject 6 sptr #comfunc global ITraceRelogger_CreateEventInstance 7 int64,int,sptr #comfunc global ITraceRelogger_ProcessTrace 8 #comfunc global ITraceRelogger_SetOutputFilename 9 wstr #comfunc global ITraceRelogger_SetCompressionMode 10 int #comfunc global ITraceRelogger_Cancel 11 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。