TraceEvent API 関数を使用してバイナリ データの不透明なブロブをログに記録するためにシステムで使用される ETW プロバイダーを作成しました。私のシステムは本質的に高スループットのイベント処理システムであり、特定のオブジェクトがシステムを通過する際にシリアライズされた状態を (安価に) キャプチャできるようにしたいと考えています。これにより再生可能性機能が提供されるため、将来いつでもイベント トレースを再生し、アプリケーションで特定の状態を引き起こしたイベントの正確なシーケンスを再現できます。
まだ初期段階にあるため、現時点でトレースを制御するには、logman や tracelog などのツールのいずれかを使用する必要があります。これらのツールは、トレース コントローラーを作成して、.etl 拡張子を持つトレース ファイルにイベントを記録できます。イベントをリアルタイムで消費し、イベントを自分でファイルに書き込むことができるスタンドアロンコントローラーを作成できることはわかっていますが、この段階ではそれを避けたいと思います (怠惰と呼びます:))。利用可能?
それで、誰かが .etl ファイルのバイナリ形式について洞察を持っていますか? tracedmp のようなものがそれらを読み取って CSV を生成できることは知っていますが、それはバイナリ部分には役立ちません。これらのファイルを読み取って、書き込んだ BLOB を解析できれば、基本的に再生可能性が得られますが、このファイル形式では何も見つかりません。
ありがとう、ポール