問題タブ [etw]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winapi - NDIS などのカーネル プロバイダーからの ETW PID 精度
私は、Windows イベント、ネットワーク イベント、特に NDIS-PacketCapture と TCPIP のイベント トレーシングをいじっています。各 ETW メッセージには PID フィールドがあり、割り当ての背後にあるロジックを理解しようとしています。TCPIP イベントの大部分は、PID フィールドに正しい PID を持ち、NDIS-Packet キャプチャの大部分も同様に持っているようです。ただし、PID が明らかに正しくない多くのインスタンス (おそらく 30%) があります。これらの誤った PID 情報の一部は、偽陽性であり、一部は偽陰性です。たとえば、Chrome からの特定のパケットを見逃して、そのケースに PID 0 を割り当てるだけです (偽陰性)。実行しているアプリケーションの PID を取得して、PID フィールドでこれらのイベントをキャッチすることがあります (誤検知)。私が分析できる限り、
注意すべきもう 1 つの興味深い点は、一部の TCPIP イベントには、ヘッダーの PID と一致する「PID」プロパティが含まれていることです。この「PID」プロパティは、ヘッダー PID よりも正確であるように見えますが、それでも偽陽性と偽陰性を示します。
バグがありますか? ETW メッセージの PID フィールドの目的を理解していませんか? これらのプロバイダーは、気が向いたときにゴミを入れることを選択しているだけですか?
StartTrace、EnableTraceEx2、OpenTrace、ProcessEventRecordProperties(PEVENT_RECORD pEvent) コールバックなど、C++ で Win32/64 トレース関数を使用しています。より具体的には、この例を変更して、NDIS-PacketCapture および TCPIP イベントを取得しました。http://msdn.microsoft.com/en-us/library/windows/desktop/ee441329(v=vs.85).aspx
これは、典型的な TCPIP イベントのすべての値がどのように見えるかです (私は xxx.. を IP とポート番号に使用しています)
どんな助けでも大歓迎です。
c++ - ユーザーモードアプリケーションからWPPを使用する
私はユーザーモードでWPPを使用しようとしましたが、VS10で正常に使用でき、projファイルに追加してターゲットをリリースしました。
次に、Wpp.targetsは次のように定義されます。
この手順は、次の記事から取得されました:http ://www.devproconnections.com/article/visual-studio-2010/wpp-tracing-in-visual-c-2010-projects
VS10-> Debugでこれをコンパイルしようとすると、「tmh」ファイルが生成されていることがわかりますが、実際に何かをログに記録したいときにエラーが発生します。
DoTraceMessage(TRACE_ERROR、L "Aha"); //エラーC2065:'TRACE_ERROR':宣言されていない識別子エラーC3861:' WPP_CALL_Application_Test_cpp':識別子が見つかりません
私が言ったように、VS10->リリースターゲットの同じコードで問題はありません。参考までに、これが私の定義です。
リリースモードを使用すると機能するのに、デバッグモードでは機能しない理由を誰かが知っていますか?
windows - イベント トレース セッションにデータをより頻繁にフラッシュさせるにはどうすればよいですか?
WPP を使用して多くのトレース ログを書き込むドライバーがあります。
イベントを .etl ファイルに書き込むようにAutoLoggerレジストリ キー エントリを構成しました。
ロギング セッションが正常に開始され、ファイルが作成されますが、データがディスクにフラッシュされることがあります。データをより頻繁に、またはリアルタイムでフラッシュすることは可能ですか?
「フラッシュタイマー」で遊んでみましたが、MSDNに書かれている内容とその効果に基づいて、探しているものではありません。
ありがとう。
windows - Windowsカーネルのシステムコールトレースでは、これらの謎のアドレスは何ですか?
Windows Server 2008 R2でsyscallのカーネルトレースを実行するために、Event Tracing for Windows(ETW)を使用しています。
私は走っています:
結果のカーネルトレースでは、SysCallAddress属性を調べており、期待するものがたくさんあります。たとえば、nt!NtWriteFileである0xFFFFF80001999EE0です。
問題は、0xFFFFF960の範囲に多くのアドレス(たとえば0xFFFFF9600004421C)が表示されており、これらのアドレスに何があるのかわからないことです。カーネルデバッガーのlnコマンドは、これらのアドレスのいずれについても情報を返しません。カーネルトレーサーがシステムコールと見なすこれらのアドレスに何が存在するかを誰かが知っていますか?
windows - カーネルモジュールntおよびwin32kのアドレスを取得するにはどうすればよいですか?
ntとwin32kがロードされているベースアドレスを知る必要があります。この情報は、カーネルデバッグを有効にしてシステムを起動し、カーネルデバッグセッションを開始し、コマンドlm
を実行してロードされたモジュールのリストを取得することで確認できます。
私がやりたいのは、デバッグモードで起動したり、カーネルデバッガーを使用したりせずに、これら2つのモジュールがロードされる場所をプログラムで決定することです。Windowsログファイルのイベントトレースでシステムコールを解決するためのベースアドレスが必要です。
私が取り組んでいるシステムは、Windows Server2008R2を実行しています。
performance - ETW (Windows のイベント トレース) を使用して、メモリ統計も収集できますか?
ETW を使用して、すべてのプロセスとシステムのメモリ統計を取得することは可能ですか? メモリ統計とは、つまり、コミットされたバイト、プライベート バイト、ページ プール、ワーキング セットなどです。
xperf を使用してメモリ統計を取得および表示する方法については何も見つかりません。それは常に CPU 、ディスク、ネットワークに関するものです。
おそらくパフォーマンスカウンターを使用してそのような情報を取得できますが、統計を1つのグラフにグラフィカルに重ねるにはどうすればよいですか(タイムスタンプを関連付け/同期する方法)?
c++ - ドライバーでのETWトレース-手順後
ドライバーにETWトレースがあります。マニフェストファイルが適切に作成され、リソースがすべてコンパイルされます。ターゲットマシンで、管理者として次のコマンドを実行します。
wevtutil im myManifest.xml
エラーは発生しません。次に、(管理者として)実行します。
logman create trace myProviderName -o Log.etl -p "{myProviderGUID}" -f bincirc -max 1000
エラーなし。次に、いくつかのトレースが実行されるのに十分な時間を待ってから、これらのコマンドを(管理者として)実行します。
logman stop myProviderName
tracerpt Log000001.etl
今私が抱えている問題は、生成されたファイルに、dumpfile.xml
私のトレースのレコードがまったく表示されないことです。プロバイダーGUIDなどのセットアップ詳細の基本構造を示しています。
だから私の質問:上記の手順で欠けているステップがありますか、それとも問題は私のトレースコードにあるのでしょうか?
winapi - Windows用のイベントトレースが機能しないのはなぜですか?
Windows用のイベントトレースの使用方法を理解しようとしています...しかし失敗しています。
このコードでエラーコードが表示されるのはなぜERROR_WMI_INSTANCE_NOT_FOUND
ですか?
.net-4.5 - ETW カスタム コントローラーとコンシューマー (.net 4.5 EventSource を使用するプロバイダー)
.net 4.5 で ETW を使用しようとしています。EventSource を使用してメッセージを書き込む小さなサンプル アプリケーションがありますが、独自の ETW コントローラーとコンシューマー アプリケーションを作成する方法を理解するのに苦労しています。
PerfView を使用して、イベントソースが機能していることを確認し、同じアセンブリ内に EventListner を追加しました。ここで、ライブ トレースを管理および表示するための独自のカスタム "PerfView" を使用できるようにしたいと考えています。EventSources に結び付ける方法がわかりません。
c - Windows ファイル システム フィルター ドライバー
Windows Server 2008 R2 で ETW を使用して、フィルター ドライバーが I/O パフォーマンスに与える影響を追跡する方法をテスト/デモンストレーションするために、小さなファイル システム フィルター ドライバーを作成しようとしています。DDK をダウンロードし、いくつかのサンプルをビルドしましたが、特定のディスク デバイスまたは特定のファイル拡張子でフィルター処理しようとすると問題が発生します。どちらも実行しようとしているタスクで機能します。私がやりたいことは、フィルター ドライバーを特定のディスク/ボリューム、または特定の拡張子を持つファイルに分離して、要求を処理するフィルター ドライバーによって I/O パフォーマンスがどのように影響を受けるかを示すことです。私はパススルー サンプルをテストに使用してきましたが、遅延を導入しようとすると、操作を具体的に何をしようとしているのかを適切にフィルター処理できないため、マイナスの影響を受けます。
これは、完全に機能するドライバーを意図したものではありません。理想的には、特定のボリュームまたは特定のファイル拡張子に対する IRP_MJ_WRITE 操作をインターセプト/影響できるようにして、フィルター ドライバーがそれらの操作に与える影響を示すことができるようにしたいと考えています。ここで見逃している簡単な方法はありますか? 人々がこの種のドライバーを書いて生計を立てていることは十分に理解していますが、可能であれば単純なフィルターを作成できるようにしたいと考えています。
ありがとう!