Win32 API 日本語リファレンス
ホームSystem.Diagnostics.Etw › ITraceRelogger

ITraceRelogger

COM
IIDf754ad43-3bcc-4286-8009-9c5da214e84e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

リロギング機能へのアクセスを提供し、ETW トレースストリームからのイベントを操作および再ログ記録できるようにします。

解説(Remarks)

このインターフェイスは、IA64 アーキテクチャの Windows 7 ではサポートされていません。

メソッド 9

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT AddLogfileTraceStream(LPWSTR LogfileName, void* UserContext, ULONGLONG* TraceStreamId)

ログファイルベースの新しい ETW トレースストリームをリロガーに追加します。

LogfileNameLPWSTRin再ログ記録するイベントを含むファイル。
UserContextvoid*inこれらのイベントを再ログ記録する際のユーザーコンテキスト。
TraceStreamIdULONGLONG*out追加されたトレースストリームを識別する ID を受け取る。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

新しく追加されたストリーム内のイベントは、このリロガーに関連付けられた IEventCallback オブジェクトへのコールバックを生成します。

vtbl 4 HRESULT AddRealtimeTraceStream(LPWSTR LoggerName, void* UserContext, ULONGLONG* TraceStreamId)

新しいリアルタイム ETW トレースストリームをリロガーに追加します。

LoggerNameLPWSTRin再ログ記録するイベントを生成するリアルタイムロガー
UserContextvoid*inこれらのイベントを再ログ記録する際のユーザーコンテキスト。
TraceStreamIdULONGLONG*out追加されたトレースストリームを識別する ID を受け取る。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

新しく追加されたストリーム内のイベントは、このリロガーに関連付けられた IEventCallback オブジェクトへのコールバックを生成します。

vtbl 5 HRESULT RegisterCallback(ITraceEventCallback* Callback)

トレースアクティビティ(開始、停止、および新しいイベントのログ記録)を通知するために、IEventCallback の実装をリロガーに登録します。

CallbackITraceEventCallback*inトレースアクティビティ情報。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 6 HRESULT Inject(ITraceEvent* Event)

出力トレースログファイルに書き込まれるイベントストリームに、システムが生成したものではないイベントを挿入します。

EventITraceEvent*inストリームに挿入するイベント。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

これは、どのイベントを出力トレースログファイルに含めるかを示す主要な方法です。

IEventCallback::OnEvent によって提供された既存のイベントを保持するには、このメソッドを呼び出す必要があります。

vtbl 7 HRESULT CreateEventInstance(ULONGLONG TraceStreamId, DWORD Flags, ITraceEvent** Event)

新しいイベントを生成します。

TraceStreamIdULONGLONGin新しいイベントを関連付けるトレースストリームの ID を指定する。
FlagsDWORDinイベントがクラシックかクリムゾンかを示します。
EventITraceEvent**out新しく生成されたイベント。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

イベントのメタデータは TraceHandle から取得されますが、トレースにログ記録される前に開発者が変更できます。

vtbl 8 HRESULT ProcessTrace()

関連付けられたトレースストリームからコンシューマーへイベントを配信します。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 9 HRESULT SetOutputFilename(LPWSTR LogfileName)

ETW が新しい再ログ記録されたトレースを書き込むファイルを指定します。

LogfileNameLPWSTRin新しいファイル名。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

指定したファイルが既に存在する場合は、新しいトレースで上書きされます。

vtbl 10 HRESULT SetCompressionMode(BOOLEAN CompressionMode)

再ログ記録されたトレースの圧縮を有効または無効にします。

CompressionModeBOOLEANin圧縮を有効にする場合は 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 でのみデコードできます。

vtbl 11 HRESULT Cancel()

リロギングプロセスを終了します。

戻り値

Type: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。