4

WPP インスツメンテーションを通じて「Event Tracing for Windows」を使用しようとしています。Getting Started with Software Tracing in Windows Drivers のドキュメントによると、単一のドライバーから複数のプロバイダーにトレースを発行することは可能ですが、そうする例は見当たりませんでした:

ドライバーは、複数のコントロール GUID を指定できます。各コントロール GUID は、一意のプロバイダーを識別します。たとえば、ドライバーが 2 つのコントロール GUID を定義し、1 つは共有ライブラリ用で、もう 1 つはドライバー用である場合、ライブラリとドライバーを 2 つの異なるプロバイダーとして有効にすることができます。トレースは、ライブラリまたはドライバーのいずれか、またはその両方に対して有効にすることができます。

WPP_CONTROL_GUIDSそれぞれ異なる GUIDを使用して、2 つのヘッダー ファイルを作成しようとしました。次に、さまざまなプロバイダーにトレースを発行する予定の c/cpp ファイルからさまざまなヘッダー ファイルを含めます。しかし、メインファイルの定義がこの分離をオーバーライドし、すべてのトレースがそれによって使用されるプロバイダーに到達するようです...

なにか提案を?サンプルはありますか?ありがとう!!

4

1 に答える 1

1

私は現在、疫病のように WPP トレースを避けていますが、トレース テンプレートはこれを行う方法の例を提供しています。TMH ファイルの 1 つのどこかに次のコメントが表示されます。

// template C:\WinDDK\7600.16385.1\bin\wppconfig\rev1\control.tpl
//
//     Defines a set of macro that expand control model specified
//     with WPP_CONTROL_GUIDS (example shown below)
//     into an enum of trace levels and required structures that
//     contain the mask of levels, logger handle and some information
//     required for registration.
//

///////////////////////////////////////////////////////////////////////////////////
//
// #define WPP_CONTROL_GUIDS \
//     WPP_DEFINE_CONTROL_GUID(Regular,(81b20fea,73a8,4b62,95bc,354477c97a6f), \
//       WPP_DEFINE_BIT(Error)      \
//       WPP_DEFINE_BIT(Unusual)    \
//       WPP_DEFINE_BIT(Noise)      \
//    )        \
//    WPP_DEFINE_CONTROL_GUID(HiFreq,(91b20fea,73a8,4b62,95bc,354477c97a6f), \
//       WPP_DEFINE_BIT(Entry)      \
//       WPP_DEFINE_BIT(Exit)       \
//       WPP_DEFINE_BIT(ApiCalls)   \
//       WPP_DEFINE_BIT(RandomJunk) \
//       WPP_DEFINE_BIT(LovePoem)   \
//    )  

したがって、同じ WPP_CONTROL_GUIDS マクロ内で両方の GUID を定義する必要があります。

于 2012-09-11T18:31:23.923 に答える