enabling wpp

Hi all,
I am trying to enable WPP in my driver. In my free version trace
macros to print out the DoTraceMessage string.
#define TRACE(A,LVL,S) DoTraceMessage(TRACE_LEVEL_INFORMATION, LVL, S);
where is is the data string. I also added a bunch of debug levels and
functions for using here.

In the driver entry, I added
WPP_INIT_TRACING(DriverObject, RegistryPath);
and similarly in the shutdown function I stop the tracing.

In the makefile, i added :

RUN_WPP=$(SOURCES)\
-km\
-dll\
-func:DoTraceMessage(LEVEL,FLAG,(MSG,…))

In each of my .cpp files I include the corresponding .tmh file.

The trace message in the code looks like:
TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));

When I build all this, I get error # 2065, WPP_ANNOTATE_FILENAME_LINE_NUMBER
: undeclared identifier.

I am at a loss as to what identifier it is looking for and where should i
define it.

Thanks,
Manasi

Are you wrapping the #include of the .tmh file in an extern “C”?

Ie

extern “C” {
#include “Foo.tmh”
}

For foo.cpp?

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
Sent: Tuesday, March 08, 2005 4:45 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] enabling wpp

Hi all,
I am trying to enable WPP in my driver. In my free version trace
macros to print out the DoTraceMessage string.
#define TRACE(A,LVL,S) DoTraceMessage(TRACE_LEVEL_INFORMATION, LVL,
S);
where is is the data string. I also added a bunch of debug levels and
functions for using here.

In the driver entry, I added
WPP_INIT_TRACING(DriverObject, RegistryPath);
and similarly in the shutdown function I stop the tracing.

In the makefile, i added :

RUN_WPP=$(SOURCES)\
-km\
-dll\
-func:DoTraceMessage(LEVEL,FLAG,(MSG,…))

In each of my .cpp files I include the corresponding .tmh file.

The trace message in the code looks like:
TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));

When I build all this, I get error # 2065,
WPP_ANNOTATE_FILENAME_LINE_NUMBER
: undeclared identifier.

I am at a loss as to what identifier it is looking for and where should
i
define it.

Thanks,
Manasi


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Yes, I am.

I also tried TraceEvents and that gives me the same problem.

Manasi

From: “Doron Holan”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Tue, 8 Mar 2005 17:36:10 -0800
>
>Are you wrapping the #include of the .tmh file in an extern “C”?
>
>Ie
>
>extern “C” {
>#include “Foo.tmh”
>}
>
>For foo.cpp?
>
>d
>
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Tuesday, March 08, 2005 4:45 PM
>To: Windows System Software Devs Interest List
>Subject: [ntdev] enabling wpp
>
>Hi all,
> I am trying to enable WPP in my driver. In my free version trace
>macros to print out the DoTraceMessage string.
> #define TRACE(A,LVL,S) DoTraceMessage(TRACE_LEVEL_INFORMATION, LVL,
>S);
>where is is the data string. I also added a bunch of debug levels and
>functions for using here.
>
>In the driver entry, I added
> WPP_INIT_TRACING(DriverObject, RegistryPath);
>and similarly in the shutdown function I stop the tracing.
>
>In the makefile, i added :
>
>RUN_WPP=$(SOURCES)<br>> -km<br>> -dll<br>> -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
>
>In each of my .cpp files I include the corresponding .tmh file.
>
>The trace message in the code looks like:
> TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
>
>When I build all this, I get error # 2065,
>WPP_ANNOTATE_FILENAME_LINE_NUMBER
>: undeclared identifier.
>
>I am at a loss as to what identifier it is looking for and where should
>i
>define it.
>
>Thanks,
>Manasi
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
>To unsubscribe send a blank email to xxxxx@lists.osr.com

Hi Manasi,

I think what you’re trying to do is to have a local function that calls
(for example) DbgPrint() for CHK builds, but use WPP tracing for FRE
builds. Is that correct?

If so, I think the big problem is that WPP processes the original C
file, before the C preprocessor. The result of this is that you cannot
replace TRACE() macros in your sources file before WPP sees it.

Another issue is that there may be a parenthesis mismatch between your
example use of TRACE and how the DoTraceMessage() was defined. I’ll
presume you want your source to read as your below example has it.

However, all is not lost! You must code your file to directly call your
private debug print function – WPP is designed to replace these calls
directly (not replace post-macro results – although that’s possible
it’s difficult).

Example: TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));

RUN_WPP: -func:TRACE(LEVEL,FLAG,(MSG,…))

Then, whatever header that defines TRACE() should look like:
#if NDEBUG // FRE build
// allow WPP to replace TRACE() macro
#else
// whatever you use for CHK, such as…
#define TRACE(A, LVL, S) \
if ((g_Adapter & (A)) && \
(g_Level >= (LVL))) \
{ MyDbgPrint S; }
#endif

If you use a private debug print function, then you could (should?) also
remove it when building a FRE version to reduce your binary size.

Hth,
.

-----Original Message-----
From: Manasi Deval [mailto:xxxxx@hotmail.com]
Sent: Tuesday, March 08, 2005 4:45 PM
Subject: enabling wpp

Hi all,
I am trying to enable WPP in my driver. In my free version trace
macros to print out the DoTraceMessage string.
#define TRACE(A,LVL,S) DoTraceMessage(TRACE_LEVEL_INFORMATION, LVL,
S); where is is the data string. I also added a bunch of debug levels
and functions for using here.

In the driver entry, I added
WPP_INIT_TRACING(DriverObject, RegistryPath); and similarly in
the shutdown function I stop the tracing.

In the makefile, i added :

RUN_WPP=$(SOURCES)\
-km\
-dll\
-func:DoTraceMessage(LEVEL,FLAG,(MSG,…))

In each of my .cpp files I include the corresponding .tmh file.

The trace message in the code looks like:
TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));

When I build all this, I get error # 2065,
WPP_ANNOTATE_FILENAME_LINE_NUMBER
: undeclared identifier.

I am at a loss as to what identifier it is looking for and where should
i define it.

Thanks,
Manasi

DoTraceMessage is a macro, is the default trace macro which is
recognized by the WPP preprocesor. You can also define your own and tell
the preprocessor the name of it in your sources file with
-func:MyOwnTracingFunc, or add it in your code as a wpp_config statement
and let WPP scan it. In your example you are not defining “TRACE”
therefore the preprocessor ignores it and only expands the found
DoTraceMessage defined in #define TRACE(A,LVL,S)

The general format of a valid trace message function is as follows:

FunctionName(Conditions…,“Message”,MessageVariables…);

This is expanded into:

If (Conditions enabled) {

Add the flag value, message, and message formatting to the PDB
symbol file;

…Call WmiTraceMessage; // for user Mode we use TraceMessage

}

When you do a macro for tracing, you must provide:
How to check if tracing is enabled, and the logger handle for the trace
function.

So if you define the trace macro as:
DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
You also need to define :
#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)
#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) (WPP_LEVEL_ENABLED(flags) &&
WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl)

A trace statemet will look like:
DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
%d”, “World” , i);

Is this what you want to do?

You can further simplify by defining more macros assume that you define
a flag= Unusual, and want a macro that traces for
level=TRACE_LEVEL_INFORMATION and Flags = Unusual

Method 1: define this in your code and have tracewpp scan the file with
the -scan:filename option
In this case you can define additional configuration for the trace macro
such as prefix and suffix, assumes that you have a var named hr.
// begin_wpp config
// USEPREFIX (MYTRACE,“%!STDPREFIX!”);
// FUNC MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr);
// end_wpp

Method 2: in the source file hace
-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…)

In both cases the trace macro in your code will look like:

MYTRACE(“Init Adapter %s”, AdapterName);

Thanks,
Jose Sua
Microsoft Corporation

This posting is provided “AS IS” with no warranties and confers no
rights.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
Sent: Tuesday, March 08, 2005 6:00 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] enabling wpp

Yes, I am.

I also tried TraceEvents and that gives me the same problem.

Manasi

From: “Doron Holan”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Tue, 8 Mar 2005 17:36:10 -0800
>
>Are you wrapping the #include of the .tmh file in an extern “C”?
>
>Ie
>
>extern “C” {
>#include “Foo.tmh”
>}
>
>For foo.cpp?
>
>d
>
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Tuesday, March 08, 2005 4:45 PM
>To: Windows System Software Devs Interest List
>Subject: [ntdev] enabling wpp
>
>Hi all,
> I am trying to enable WPP in my driver. In my free version trace

>macros to print out the DoTraceMessage string.
> #define TRACE(A,LVL,S) DoTraceMessage(TRACE_LEVEL_INFORMATION,
>LVL, S); where is is the data string. I also added a bunch of debug
>levels and functions for using here.
>
>In the driver entry, I added
> WPP_INIT_TRACING(DriverObject, RegistryPath); and similarly in
>the shutdown function I stop the tracing.
>
>In the makefile, i added :
>
>RUN_WPP=$(SOURCES)<br>> -km<br>> -dll<br>> -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
>
>In each of my .cpp files I include the corresponding .tmh file.
>
>The trace message in the code looks like:
> TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
>
>When I build all this, I get error # 2065,
>WPP_ANNOTATE_FILENAME_LINE_NUMBER
>: undeclared identifier.
>
>I am at a loss as to what identifier it is looking for and where should

>i define it.
>
>Thanks,
>Manasi
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
>To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to xxxxx@lists.osr.com

Thanks for all the help. I think I’m closer but not quite done yet.

When I make the changes, to define the macro in the build file as:
RUN_WPP=$(SOURCES)\
-km\
-dll\
-DMacroName\
-func:MyTraceEvents(LEVEL, FLAG,(MSG,…))\
-func:TraceEvents(LEVEL,FLAG,(MSG…))

I include the .tmh file and define the configuration as:
#define TRACE_LEVEL_NONE 0 // Tracing is not on
#define TRACE_LEVEL_FATAL 1 // Abnormal exit or termination
#define TRACE_LEVEL_ERROR 2 // Severe errors that need logging
#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation failure
#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
cases(e.g.,Entry-Exit)

#define WPP_CONTROL_GUIDS \
WPP_DEFINE_CONTROL_GUID(ixgbDriver,
(B7868145,8EB9,4b06,BC04,41ED07A49251),\
WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 = 0x00000001 */ \
WPP_DEFINE_BIT(DBG_NORMAL) /* bit 1 = 0x00000010 */ \
/* You can have up to 32 defines. If you want more than that,\
you have to provide another trace control GUID */\
)

#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) \
WPP_LEVEL_LOGGER(flags)

#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) \
(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)

Then I call the trace message in the code as follows:
TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL, (“Initializing…%s\n”,
AdapterName));

interrupt.cpp(91) : error C2143: syntax error : missing ‘)’ before 'constant
interrupt.cpp(91) : error C2059: syntax error : ‘)’
interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’: identifier not
d, even with argument-dependent lookup
interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’: identifier not f
, even with argument-dependent lookup

If the trace message in the code on lines 88,89 and 90 is as follows:

MyTraceEvents(TRACE_LEVEL_INFORMATION, “Initializing…%d\n”, Adapter);
MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”, Adapter);
MyTraceEvents(“Initializing…\n”);

I get the compilation error:
interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not found, even
with argument-dependent lookup
interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not found, even
with argument-dependent lookup
interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not found, even
with argument-dependent lookup

Hope I am getting closer to the solution.
Manasi

From: “Jose Sua”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Wed, 9 Mar 2005 10:08:36 -0800
>
>DoTraceMessage is a macro, is the default trace macro which is
>recognized by the WPP preprocesor. You can also define your own and tell
>the preprocessor the name of it in your sources file with
>-func:MyOwnTracingFunc, or add it in your code as a wpp_config statement
>and let WPP scan it. In your example you are not defining “TRACE”
>therefore the preprocessor ignores it and only expands the found
>DoTraceMessage defined in #define TRACE(A,LVL,S)
>
>The general format of a valid trace message function is as follows:
>
>FunctionName(Conditions…,“Message”,MessageVariables…);
>
>This is expanded into:
>
>If (Conditions enabled) {
>
> Add the flag value, message, and message formatting to the PDB
>symbol file;
>
>…Call WmiTraceMessage; // for user Mode we use TraceMessage
>
>}
>
>When you do a macro for tracing, you must provide:
>How to check if tracing is enabled, and the logger handle for the trace
>function.
>
>So if you define the trace macro as:
>DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
>You also need to define :
>#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)
>#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) (WPP_LEVEL_ENABLED(flags) &&
>WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl)
>
>A trace statemet will look like:
> DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
>%d”, “World” , i);
>
>
>Is this what you want to do?
>
>You can further simplify by defining more macros assume that you define
>a flag= Unusual, and want a macro that traces for
>level=TRACE_LEVEL_INFORMATION and Flags = Unusual
>
>Method 1: define this in your code and have tracewpp scan the file with
>the -scan:filename option
>In this case you can define additional configuration for the trace macro
>such as prefix and suffix, assumes that you have a var named hr.
>// begin_wpp config
>// USEPREFIX (MYTRACE,“%!STDPREFIX!”);
>// FUNC MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
>// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr);
>// end_wpp
>
>Method 2: in the source file hace
>-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…)
>
>In both cases the trace macro in your code will look like:
>
>MYTRACE(“Init Adapter %s”, AdapterName);
>
>Thanks,
>Jose Sua
>Microsoft Corporation
>
>This posting is provided “AS IS” with no warranties and confers no
>rights.
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Tuesday, March 08, 2005 6:00 PM
>To: Windows System Software Devs Interest List
>Subject: RE: [ntdev] enabling wpp
>
>Yes, I am.
>
>I also tried TraceEvents and that gives me the same problem.
>
>Manasi
>
> >From: “Doron Holan”
> >Reply-To: “Windows System Software Devs Interest List”
> >
> >To: “Windows System Software Devs Interest List”
> >Subject: RE: [ntdev] enabling wpp
> >Date: Tue, 8 Mar 2005 17:36:10 -0800
> >
> >Are you wrapping the #include of the .tmh file in an extern “C”?
> >
> >Ie
> >
> >extern “C” {
> >#include “Foo.tmh”
> >}
> >
> >For foo.cpp?
> >
> >d
> >
> >-----Original Message-----
> >From: xxxxx@lists.osr.com
> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> >Sent: Tuesday, March 08, 2005 4:45 PM
> >To: Windows System Software Devs Interest List
> >Subject: [ntdev] enabling wpp
> >
> >Hi all,
> > I am trying to enable WPP in my driver. In my free version trace
>
> >macros to print out the DoTraceMessage string.
> > #define TRACE(A,LVL,S) DoTraceMessage(TRACE_LEVEL_INFORMATION,
> >LVL, S); where is is the data string. I also added a bunch of debug
> >levels and functions for using here.
> >
> >In the driver entry, I added
> > WPP_INIT_TRACING(DriverObject, RegistryPath); and similarly in
> >the shutdown function I stop the tracing.
> >
> >In the makefile, i added :
> >
> >RUN_WPP=$(SOURCES)<br>> > -km<br>> > -dll<br>> > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> >
> >In each of my .cpp files I include the corresponding .tmh file.
> >
> >The trace message in the code looks like:
> > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> >
> >When I build all this, I get error # 2065,
> >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> >: undeclared identifier.
> >
> >I am at a loss as to what identifier it is looking for and where should
>
> >i define it.
> >
> >Thanks,
> >Manasi
> >
> >
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: unknown lmsubst tag argument:
>‘’
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@microsoft.com To
>unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
>To unsubscribe send a blank email to xxxxx@lists.osr.com

In the Macro use Level not TRACE_LEVEL_INFORMATION. This refers to an
internal WPP control structure not a value.
Must be:
#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) \
(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
DBG_NORMAL).Level >= lvl)

RUN_WPP=$(SOURCES)\
-km\
-dll\
-DMacroName\

-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(MSG,
…)\
-func:TraceEvents(LEVEL,FLAG,MSG…)

MyTraceEvents(“Initializing…%d\n”, Adapter); // for this macro. LEVEL
harcoded to TRACE_LEVEL_INFORMATION, and Flags =DBG_INIT_1 to trcae
Level =4 and Flags = 1

TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to initialize
Adapter Status %d”, Adapter);
// Trace if Level= 1 and Flags = 1

Thanks,
Jose Sua
ETW Dev Team
Microsoft Corporation

This posting is provided “AS IS” with no warranties and confers no
rights.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
Sent: Tuesday, March 15, 2005 9:24 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] enabling wpp

Thanks for all the help. I think I’m closer but not quite done yet.

When I make the changes, to define the macro in the build file as:
RUN_WPP=$(SOURCES)\
-km\
-dll\
-DMacroName\
-func:MyTraceEvents(LEVEL, FLAG,(MSG,…))\
-func:TraceEvents(LEVEL,FLAG,(MSG…))

I include the .tmh file and define the configuration as:
#define TRACE_LEVEL_NONE 0 // Tracing is not on
#define TRACE_LEVEL_FATAL 1 // Abnormal exit or termination
#define TRACE_LEVEL_ERROR 2 // Severe errors that need logging
#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation
failure
#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
cases(e.g.,Entry-Exit)

#define WPP_CONTROL_GUIDS \
WPP_DEFINE_CONTROL_GUID(ixgbDriver,
(B7868145,8EB9,4b06,BC04,41ED07A49251),\
WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 = 0x00000001 */ \
WPP_DEFINE_BIT(DBG_NORMAL) /* bit 1 = 0x00000010 */ \
/* You can have up to 32 defines. If you want more than that,\
you have to provide another trace control GUID */\
)

#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) \
WPP_LEVEL_LOGGER(flags)

#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) \
(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)

Then I call the trace message in the code as follows:
TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
(“Initializing…%s\n”, AdapterName));

interrupt.cpp(91) : error C2143: syntax error : missing ‘)’ before
'constant
interrupt.cpp(91) : error C2059: syntax error : ‘)’
interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’: identifier
not d, even with argument-dependent lookup
interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’: identifier
not f , even with argument-dependent lookup

If the trace message in the code on lines 88,89 and 90 is as follows:

MyTraceEvents(TRACE_LEVEL_INFORMATION, “Initializing…%d\n”,
Adapter);
MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”, Adapter);
MyTraceEvents(“Initializing…\n”);

I get the compilation error:
interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not found,
even with argument-dependent lookup
interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not found,
even with argument-dependent lookup
interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not found,
even with argument-dependent lookup

Hope I am getting closer to the solution.
Manasi

From: “Jose Sua”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Wed, 9 Mar 2005 10:08:36 -0800
>
>DoTraceMessage is a macro, is the default trace macro which is
>recognized by the WPP preprocesor. You can also define your own and
>tell the preprocessor the name of it in your sources file with
>-func:MyOwnTracingFunc, or add it in your code as a wpp_config
>statement and let WPP scan it. In your example you are not defining
“TRACE”
>therefore the preprocessor ignores it and only expands the found
>DoTraceMessage defined in #define TRACE(A,LVL,S)
>
>The general format of a valid trace message function is as follows:
>
>FunctionName(Conditions…,“Message”,MessageVariables…);
>
>This is expanded into:
>
>If (Conditions enabled) {
>
> Add the flag value, message, and message formatting to the PDB
>symbol file;
>
>…Call WmiTraceMessage; // for user Mode we use TraceMessage
>
>}
>
>When you do a macro for tracing, you must provide:
>How to check if tracing is enabled, and the logger handle for the trace

>function.
>
>So if you define the trace macro as:
>DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
>You also need to define :
>#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)
>#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) (WPP_LEVEL_ENABLED(flags)
>&& WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl)
>
>A trace statemet will look like:
> DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
%d”,
>“World” , i);
>
>
>Is this what you want to do?
>
>You can further simplify by defining more macros assume that you define

>a flag= Unusual, and want a macro that traces for
>level=TRACE_LEVEL_INFORMATION and Flags = Unusual
>
>Method 1: define this in your code and have tracewpp scan the file with

>the -scan:filename option In this case you can define additional
>configuration for the trace macro such as prefix and suffix, assumes
>that you have a var named hr.
>// begin_wpp config
>// USEPREFIX (MYTRACE,“%!STDPREFIX!”);
>// FUNC MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
>// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
>
>Method 2: in the source file hace
>-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…)
>
>In both cases the trace macro in your code will look like:
>
>MYTRACE(“Init Adapter %s”, AdapterName);
>
>Thanks,
>Jose Sua
>Microsoft Corporation
>
>This posting is provided “AS IS” with no warranties and confers no
>rights.
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Tuesday, March 08, 2005 6:00 PM
>To: Windows System Software Devs Interest List
>Subject: RE: [ntdev] enabling wpp
>
>Yes, I am.
>
>I also tried TraceEvents and that gives me the same problem.
>
>Manasi
>
> >From: “Doron Holan”
> >Reply-To: “Windows System Software Devs Interest List”
> >
> >To: “Windows System Software Devs Interest List”
> >
> >Subject: RE: [ntdev] enabling wpp
> >Date: Tue, 8 Mar 2005 17:36:10 -0800
> >
> >Are you wrapping the #include of the .tmh file in an extern “C”?
> >
> >Ie
> >
> >extern “C” {
> >#include “Foo.tmh”
> >}
> >
> >For foo.cpp?
> >
> >d
> >
> >-----Original Message-----
> >From: xxxxx@lists.osr.com
> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> >Sent: Tuesday, March 08, 2005 4:45 PM
> >To: Windows System Software Devs Interest List
> >Subject: [ntdev] enabling wpp
> >
> >Hi all,
> > I am trying to enable WPP in my driver. In my free version
> >trace
>
> >macros to print out the DoTraceMessage string.
> > #define TRACE(A,LVL,S) DoTraceMessage(TRACE_LEVEL_INFORMATION,
> >LVL, S); where is is the data string. I also added a bunch of debug
> >levels and functions for using here.
> >
> >In the driver entry, I added
> > WPP_INIT_TRACING(DriverObject, RegistryPath); and similarly
> >in the shutdown function I stop the tracing.
> >
> >In the makefile, i added :
> >
> >RUN_WPP=$(SOURCES)<br>> > -km<br>> > -dll<br>> > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> >
> >In each of my .cpp files I include the corresponding .tmh file.
> >
> >The trace message in the code looks like:
> > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> >
> >When I build all this, I get error # 2065,
> >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> >: undeclared identifier.
> >
> >I am at a loss as to what identifier it is looking for and where
> >should
>
> >i define it.
> >
> >Thanks,
> >Manasi
> >
> >
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as:
> >xxxxx@windows.microsoft.com To unsubscribe send a blank email to
> >xxxxx@lists.osr.com
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: unknown lmsubst tag
argument:
>‘’
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@microsoft.com To
>unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
>To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to xxxxx@lists.osr.com

If I do exactly that, such that I print 2 messages on lines 91 and 92 as
follows:
TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing… \n”);
MyTraceEvents(“Initializing…\n”);
The code continues to get compilation problems as:

interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
class/struct/union
type
interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
class/struct/union t
ype
interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
class/struct/union
type
interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
class/struct/union
type
interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even with
arg
ument-dependent lookup
interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even with
arg
ument-dependent lookup
interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even with
arg
ument-dependent lookup
interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even with
arg
ument-dependent lookup
interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
class/struct/union
type
interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
class/struct/union t
ype
interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
class/struct/union
type
interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
class/struct/union
type
interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even with
arg
ument-dependent lookup
interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even with
arg
ument-dependent lookup
interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even with
arg
ument-dependent lookup
interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even with
arg
ument-dependent lookup

Please also help me understand what the WPP_BIT errors mean. I can see the
enumberator in the .tmh file so I’m not sure what else i need to define.
Manasi

From: “Jose Sua”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Tue, 15 Mar 2005 10:31:23 -0800
>
>In the Macro use Level not TRACE_LEVEL_INFORMATION. This refers to an
>internal WPP control structure not a value.
>Must be:
>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
>DBG_NORMAL).Level >= lvl)
>
>RUN_WPP=$(SOURCES)<br>> -km<br>> -dll<br>> -DMacroName<br>>
>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(MSG,
>…)<br>> -func:TraceEvents(LEVEL,FLAG,MSG…)
>
>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this macro. LEVEL
>harcoded to TRACE_LEVEL_INFORMATION, and Flags =DBG_INIT_1 to trcae
>Level =4 and Flags = 1
>
>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to initialize
>Adapter Status %d”, Adapter);
>// Trace if Level= 1 and Flags = 1
>
>
>Thanks,
>Jose Sua
>ETW Dev Team
>Microsoft Corporation
>
>This posting is provided “AS IS” with no warranties and confers no
>rights.
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Tuesday, March 15, 2005 9:24 AM
>To: Windows System Software Devs Interest List
>Subject: RE: [ntdev] enabling wpp
>
>Thanks for all the help. I think I’m closer but not quite done yet.
>
>When I make the changes, to define the macro in the build file as:
>RUN_WPP=$(SOURCES)<br>> -km<br>> -dll<br>> -DMacroName<br>> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> -func:TraceEvents(LEVEL,FLAG,(MSG…))
>
>I include the .tmh file and define the configuration as:
>#define TRACE_LEVEL_NONE 0 // Tracing is not on
>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or termination
>#define TRACE_LEVEL_ERROR 2 // Severe errors that need logging
>#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation
>failure
>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
>cases(e.g.,Entry-Exit)
>
>#define WPP_CONTROL_GUIDS <br>> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 = 0x00000001 / <br>> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 = 0x00000010 / <br>> / You can have up to 32 defines. If you want more than that,<br>> you have to provide another trace control GUID */<br>> )
>
>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> WPP_LEVEL_LOGGER(flags)
>
>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
>
>Then I call the trace message in the code as follows:
> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
>(“Initializing…%s\n”, AdapterName));
>
>interrupt.cpp(91) : error C2143: syntax error : missing ‘)’ before
>‘constant
>interrupt.cpp(91) : error C2059: syntax error : ‘)’
>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’: identifier
>not d, even with argument-dependent lookup
>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’: identifier
>not f , even with argument-dependent lookup
>
>If the trace message in the code on lines 88,89 and 90 is as follows:
>
> MyTraceEvents(TRACE_LEVEL_INFORMATION, “Initializing…%d\n”,
>Adapter);
> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”, Adapter);
> MyTraceEvents(“Initializing…\n”);
>
>I get the compilation error:
>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not found,
>even with argument-dependent lookup
>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not found,
>even with argument-dependent lookup
>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not found,
>even with argument-dependent lookup
>
>Hope I am getting closer to the solution.
>Manasi
>
> >From: “Jose Sua”
> >Reply-To: “Windows System Software Devs Interest List”
> >
> >To: “Windows System Software Devs Interest List”
> >Subject: RE: [ntdev] enabling wpp
> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> >
> >DoTraceMessage is a macro, is the default trace macro which is
> >recognized by the WPP preprocesor. You can also define your own and
> >tell the preprocessor the name of it in your sources file with
> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
> >statement and let WPP scan it. In your example you are not defining
>“TRACE”
> >therefore the preprocessor ignores it and only expands the found
> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> >
> >The general format of a valid trace message function is as follows:
> >
> >FunctionName(Conditions…,“Message”,MessageVariables…);
> >
> >This is expanded into:
> >
> >If (Conditions enabled) {
> >
> > Add the flag value, message, and message formatting to the PDB
> >symbol file;
> >
> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
> >
> >}
> >
> >When you do a macro for tracing, you must provide:
> >How to check if tracing is enabled, and the logger handle for the trace
>
> >function.
> >
> >So if you define the trace macro as:
> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> >You also need to define :
> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)
> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) (WPP_LEVEL_ENABLED(flags)
> >&& WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl)
> >
> >A trace statemet will look like:
> > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
>%d”,
> >“World” , i);
> >
> >
> >Is this what you want to do?
> >
> >You can further simplify by defining more macros assume that you define
>
> >a flag= Unusual, and want a macro that traces for
> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> >
> >Method 1: define this in your code and have tracewpp scan the file with
>
> >the -scan:filename option In this case you can define additional
> >configuration for the trace macro such as prefix and suffix, assumes
> >that you have a var named hr.
> >// begin_wpp config
> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”);
> >// FUNC MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> >
> >Method 2: in the source file hace
> >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…)
> >
> >In both cases the trace macro in your code will look like:
> >
> >MYTRACE(“Init Adapter %s”, AdapterName);
> >
> >Thanks,
> >Jose Sua
> >Microsoft Corporation
> >
> >This posting is provided “AS IS” with no warranties and confers no
> >rights.
> >-----Original Message-----
> >From: xxxxx@lists.osr.com
> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> >Sent: Tuesday, March 08, 2005 6:00 PM
> >To: Windows System Software Devs Interest List
> >Subject: RE: [ntdev] enabling wpp
> >
> >Yes, I am.
> >
> >I also tried TraceEvents and that gives me the same problem.
> >
> >Manasi
> >
> > >From: “Doron Holan”
> > >Reply-To: “Windows System Software Devs Interest List”
> > >
> > >To: “Windows System Software Devs Interest List”
> > >
> > >Subject: RE: [ntdev] enabling wpp
> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> > >
> > >Are you wrapping the #include of the .tmh file in an extern “C”?
> > >
> > >Ie
> > >
> > >extern “C” {
> > >#include “Foo.tmh”
> > >}
> > >
> > >For foo.cpp?
> > >
> > >d
> > >
> > >-----Original Message-----
> > >From: xxxxx@lists.osr.com
> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> > >Sent: Tuesday, March 08, 2005 4:45 PM
> > >To: Windows System Software Devs Interest List
> > >Subject: [ntdev] enabling wpp
> > >
> > >Hi all,
> > > I am trying to enable WPP in my driver. In my free version
> > >trace
> >
> > >macros to print out the DoTraceMessage string.
> > > #define TRACE(A,LVL,S) DoTraceMessage(TRACE_LEVEL_INFORMATION,
> > >LVL, S); where is is the data string. I also added a bunch of debug
> > >levels and functions for using here.
> > >
> > >In the driver entry, I added
> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and similarly
> > >in the shutdown function I stop the tracing.
> > >
> > >In the makefile, i added :
> > >
> > >RUN_WPP=$(SOURCES)<br>> > > -km<br>> > > -dll<br>> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> > >
> > >In each of my .cpp files I include the corresponding .tmh file.
> > >
> > >The trace message in the code looks like:
> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> > >
> > >When I build all this, I get error # 2065,
> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> > >: undeclared identifier.
> > >
> > >I am at a loss as to what identifier it is looking for and where
> > >should
> >
> > >i define it.
> > >
> > >Thanks,
> > >Manasi
> > >
> > >
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as:
> > >xxxxx@windows.microsoft.com To unsubscribe send a blank email to
> > >xxxxx@lists.osr.com
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as: unknown lmsubst tag
>argument:
> >’‘
> > >To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: xxxxx@microsoft.com To
> >unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: unknown lmsubst tag argument:
>’'
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@microsoft.com To
>unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
>To unsubscribe send a blank email to xxxxx@lists.osr.com

Allright! I got all the issues sorted out and now have compiled code. Thanks
a lot to all the people on this list who helped out.

Manasi

From: “Manasi Deval”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Tue, 15 Mar 2005 15:07:12 -0800
>
>If I do exactly that, such that I print 2 messages on lines 91 and 92 as
>follows:
> TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing… \n”);
> MyTraceEvents(“Initializing…\n”);
>The code continues to get compilation problems as:
>
>interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
>class/struct/union
>type
>interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
>class/struct/union t
>ype
>interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
>class/struct/union
>type
>interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
>class/struct/union
>type
>interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even
>with arg
>ument-dependent lookup
>interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even
>with arg
>ument-dependent lookup
>interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even
>with arg
>ument-dependent lookup
>interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even
>with arg
>ument-dependent lookup
>interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
>class/struct/union
>type
>interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
>class/struct/union t
>ype
>interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
>class/struct/union
>type
>interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
>class/struct/union
>type
>interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even
>with arg
>ument-dependent lookup
>interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even
>with arg
>ument-dependent lookup
>interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even
>with arg
>ument-dependent lookup
>interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even
>with arg
>ument-dependent lookup
>
>Please also help me understand what the WPP_BIT errors mean. I can see the
>enumberator in the .tmh file so I’m not sure what else i need to define.
>Manasi
>
>>From: “Jose Sua”
>>Reply-To: “Windows System Software Devs Interest List”
>>
>>To: “Windows System Software Devs Interest List”
>>Subject: RE: [ntdev] enabling wpp
>>Date: Tue, 15 Mar 2005 10:31:23 -0800
>>
>>In the Macro use Level not TRACE_LEVEL_INFORMATION. This refers to an
>>internal WPP control structure not a value.
>>Must be:
>>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>>> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
>>DBG_NORMAL).Level >= lvl)
>>
>>RUN_WPP=$(SOURCES)<br>>> -km<br>>> -dll<br>>> -DMacroName<br>>>
>>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(MSG,
>>…)<br>>> -func:TraceEvents(LEVEL,FLAG,MSG…)
>>
>>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this macro. LEVEL
>>harcoded to TRACE_LEVEL_INFORMATION, and Flags =DBG_INIT_1 to trcae
>>Level =4 and Flags = 1
>>
>>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to initialize
>>Adapter Status %d”, Adapter);
>>// Trace if Level= 1 and Flags = 1
>>
>>
>>Thanks,
>>Jose Sua
>>ETW Dev Team
>>Microsoft Corporation
>>
>>This posting is provided “AS IS” with no warranties and confers no
>>rights.
>>-----Original Message-----
>>From: xxxxx@lists.osr.com
>>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>>Sent: Tuesday, March 15, 2005 9:24 AM
>>To: Windows System Software Devs Interest List
>>Subject: RE: [ntdev] enabling wpp
>>
>>Thanks for all the help. I think I’m closer but not quite done yet.
>>
>>When I make the changes, to define the macro in the build file as:
>>RUN_WPP=$(SOURCES)<br>>> -km<br>>> -dll<br>>> -DMacroName<br>>> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>>> -func:TraceEvents(LEVEL,FLAG,(MSG…))
>>
>>I include the .tmh file and define the configuration as:
>>#define TRACE_LEVEL_NONE 0 // Tracing is not on
>>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or termination
>>#define TRACE_LEVEL_ERROR 2 // Severe errors that need logging
>>#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation
>>failure
>>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
>>cases(e.g.,Entry-Exit)
>>
>>#define WPP_CONTROL_GUIDS <br>>> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
>>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>>> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 = 0x00000001 / <br>>> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 = 0x00000010 / <br>>> / You can have up to 32 defines. If you want more than that,<br>>> you have to provide another trace control GUID */<br>>> )
>>
>>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>>> WPP_LEVEL_LOGGER(flags)
>>
>>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>>> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
>>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
>>
>>Then I call the trace message in the code as follows:
>> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
>>(“Initializing…%s\n”, AdapterName));
>>
>>interrupt.cpp(91) : error C2143: syntax error : missing ‘)’ before
>>‘constant
>>interrupt.cpp(91) : error C2059: syntax error : ‘)’
>>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’: identifier
>>not d, even with argument-dependent lookup
>>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’: identifier
>>not f , even with argument-dependent lookup
>>
>>If the trace message in the code on lines 88,89 and 90 is as follows:
>>
>> MyTraceEvents(TRACE_LEVEL_INFORMATION, “Initializing…%d\n”,
>>Adapter);
>> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”, Adapter);
>> MyTraceEvents(“Initializing…\n”);
>>
>>I get the compilation error:
>>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not found,
>>even with argument-dependent lookup
>>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not found,
>>even with argument-dependent lookup
>>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not found,
>>even with argument-dependent lookup
>>
>>Hope I am getting closer to the solution.
>>Manasi
>>
>> >From: “Jose Sua”
>> >Reply-To: “Windows System Software Devs Interest List”
>> >
>> >To: “Windows System Software Devs Interest List”
>> >Subject: RE: [ntdev] enabling wpp
>> >Date: Wed, 9 Mar 2005 10:08:36 -0800
>> >
>> >DoTraceMessage is a macro, is the default trace macro which is
>> >recognized by the WPP preprocesor. You can also define your own and
>> >tell the preprocessor the name of it in your sources file with
>> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
>> >statement and let WPP scan it. In your example you are not defining
>>“TRACE”
>> >therefore the preprocessor ignores it and only expands the found
>> >DoTraceMessage defined in #define TRACE(A,LVL,S)
>> >
>> >The general format of a valid trace message function is as follows:
>> >
>> >FunctionName(Conditions…,“Message”,MessageVariables…);
>> >
>> >This is expanded into:
>> >
>> >If (Conditions enabled) {
>> >
>> > Add the flag value, message, and message formatting to the PDB
>> >symbol file;
>> >
>> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
>> >
>> >}
>> >
>> >When you do a macro for tracing, you must provide:
>> >How to check if tracing is enabled, and the logger handle for the trace
>>
>> >function.
>> >
>> >So if you define the trace macro as:
>> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
>> >You also need to define :
>> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)
>> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags) (WPP_LEVEL_ENABLED(flags)
>> >&& WPP_CONTROL(WPP_BIT_ ## flags).Level >= lvl)
>> >
>> >A trace statemet will look like:
>> > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
>>%d”,
>> >“World” , i);
>> >
>> >
>> >Is this what you want to do?
>> >
>> >You can further simplify by defining more macros assume that you define
>>
>> >a flag= Unusual, and want a macro that traces for
>> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
>> >
>> >Method 1: define this in your code and have tracewpp scan the file with
>>
>> >the -scan:filename option In this case you can define additional
>> >configuration for the trace macro such as prefix and suffix, assumes
>> >that you have a var named hr.
>> >// begin_wpp config
>> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”);
>> >// FUNC MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
>> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
>> >
>> >Method 2: in the source file hace
>> >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…)
>> >
>> >In both cases the trace macro in your code will look like:
>> >
>> >MYTRACE(“Init Adapter %s”, AdapterName);
>> >
>> >Thanks,
>> >Jose Sua
>> >Microsoft Corporation
>> >
>> >This posting is provided “AS IS” with no warranties and confers no
>> >rights.
>> >-----Original Message-----
>> >From: xxxxx@lists.osr.com
>> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>> >Sent: Tuesday, March 08, 2005 6:00 PM
>> >To: Windows System Software Devs Interest List
>> >Subject: RE: [ntdev] enabling wpp
>> >
>> >Yes, I am.
>> >
>> >I also tried TraceEvents and that gives me the same problem.
>> >
>> >Manasi
>> >
>> > >From: “Doron Holan”
>> > >Reply-To: “Windows System Software Devs Interest List”
>> > >
>> > >To: “Windows System Software Devs Interest List”
>> > >
>> > >Subject: RE: [ntdev] enabling wpp
>> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
>> > >
>> > >Are you wrapping the #include of the .tmh file in an extern “C”?
>> > >
>> > >Ie
>> > >
>> > >extern “C” {
>> > >#include “Foo.tmh”
>> > >}
>> > >
>> > >For foo.cpp?
>> > >
>> > >d
>> > >
>> > >-----Original Message-----
>> > >From: xxxxx@lists.osr.com
>> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>> > >Sent: Tuesday, March 08, 2005 4:45 PM
>> > >To: Windows System Software Devs Interest List
>> > >Subject: [ntdev] enabling wpp
>> > >
>> > >Hi all,
>> > > I am trying to enable WPP in my driver. In my free version
>> > >trace
>> >
>> > >macros to print out the DoTraceMessage string.
>> > > #define TRACE(A,LVL,S) DoTraceMessage(TRACE_LEVEL_INFORMATION,
>> > >LVL, S); where is is the data string. I also added a bunch of debug
>> > >levels and functions for using here.
>> > >
>> > >In the driver entry, I added
>> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and similarly
>> > >in the shutdown function I stop the tracing.
>> > >
>> > >In the makefile, i added :
>> > >
>> > >RUN_WPP=$(SOURCES)<br>>> > > -km<br>>> > > -dll<br>>> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
>> > >
>> > >In each of my .cpp files I include the corresponding .tmh file.
>> > >
>> > >The trace message in the code looks like:
>> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
>> > >
>> > >When I build all this, I get error # 2065,
>> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
>> > >: undeclared identifier.
>> > >
>> > >I am at a loss as to what identifier it is looking for and where
>> > >should
>> >
>> > >i define it.
>> > >
>> > >Thanks,
>> > >Manasi
>> > >
>> > >
>> > >
>> > >—
>> > >Questions? First check the Kernel Driver FAQ at
>> > >http://www.osronline.com/article.cfm?id=256
>> > >
>> > >You are currently subscribed to ntdev as:
>> > >xxxxx@windows.microsoft.com To unsubscribe send a blank email to
>> > >xxxxx@lists.osr.com
>> > >
>> > >—
>> > >Questions? First check the Kernel Driver FAQ at
>> > >http://www.osronline.com/article.cfm?id=256
>> > >
>> > >You are currently subscribed to ntdev as: unknown lmsubst tag
>>argument:
>> >’‘
>> > >To unsubscribe send a blank email to xxxxx@lists.osr.com
>> >
>> >
>> >
>> >—
>> >Questions? First check the Kernel Driver FAQ at
>> >http://www.osronline.com/article.cfm?id=256
>> >
>> >You are currently subscribed to ntdev as: xxxxx@microsoft.com To
>> >unsubscribe send a blank email to xxxxx@lists.osr.com
>> >
>> >—
>> >Questions? First check the Kernel Driver FAQ at
>> >http://www.osronline.com/article.cfm?id=256
>> >
>> >You are currently subscribed to ntdev as: unknown lmsubst tag argument:
>>’'
>> >To unsubscribe send a blank email to xxxxx@lists.osr.com
>>
>>
>>
>>—
>>Questions? First check the Kernel Driver FAQ at
>>http://www.osronline.com/article.cfm?id=256
>>
>>You are currently subscribed to ntdev as: xxxxx@microsoft.com To
>>unsubscribe send a blank email to xxxxx@lists.osr.com
>>
>>—
>>Questions? First check the Kernel Driver FAQ at
>>http://www.osronline.com/article.cfm?id=256
>>
>>You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
>>To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com

What was the Problem ?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
Sent: Wednesday, March 16, 2005 9:06 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] enabling wpp

Allright! I got all the issues sorted out and now have compiled code.
Thanks a lot to all the people on this list who helped out.

Manasi

From: “Manasi Deval”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Tue, 15 Mar 2005 15:07:12 -0800
>
>If I do exactly that, such that I print 2 messages on lines 91 and 92
>as
>follows:
> TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing…
\n”);
> MyTraceEvents(“Initializing…\n”);
>The code continues to get compilation problems as:
>
>interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
>class/struct/union type
>interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
>class/struct/union t ype
>interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
>class/struct/union type
>interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
>class/struct/union type
>interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even

>with arg ument-dependent lookup
>interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even

>with arg ument-dependent lookup
>interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even

>with arg ument-dependent lookup
>interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even

>with arg ument-dependent lookup
>interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
>class/struct/union type
>interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
>class/struct/union t ype
>interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
>class/struct/union type
>interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
>class/struct/union type
>interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even

>with arg ument-dependent lookup
>interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even

>with arg ument-dependent lookup
>interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even

>with arg ument-dependent lookup
>interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even

>with arg ument-dependent lookup
>
>Please also help me understand what the WPP_BIT errors mean. I can see
>the enumberator in the .tmh file so I’m not sure what else i need to
define.
>Manasi
>
>>From: “Jose Sua”
>>Reply-To: “Windows System Software Devs Interest List”
>>
>>To: “Windows System Software Devs Interest List”
>>Subject: RE: [ntdev] enabling wpp
>>Date: Tue, 15 Mar 2005 10:31:23 -0800
>>
>>In the Macro use Level not TRACE_LEVEL_INFORMATION. This refers to an
>>internal WPP control structure not a value.
>>Must be:
>>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>>> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
>>DBG_NORMAL).Level >= lvl)
>>
>>RUN_WPP=$(SOURCES)<br>>> -km<br>>> -dll<br>>> -DMacroName<br>>>
>>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(MS
>>G,
>>…)<br>>> -func:TraceEvents(LEVEL,FLAG,MSG…)
>>
>>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this macro.
>>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags =DBG_INIT_1 to
>>trcae Level =4 and Flags = 1
>>
>>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to initialize
>>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags = 1
>>
>>
>>Thanks,
>>Jose Sua
>>ETW Dev Team
>>Microsoft Corporation
>>
>>This posting is provided “AS IS” with no warranties and confers no
>>rights.
>>-----Original Message-----
>>From: xxxxx@lists.osr.com
>>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>>Sent: Tuesday, March 15, 2005 9:24 AM
>>To: Windows System Software Devs Interest List
>>Subject: RE: [ntdev] enabling wpp
>>
>>Thanks for all the help. I think I’m closer but not quite done yet.
>>
>>When I make the changes, to define the macro in the build file as:
>>RUN_WPP=$(SOURCES)<br>>> -km<br>>> -dll<br>>> -DMacroName<br>>> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>>> -func:TraceEvents(LEVEL,FLAG,(MSG…))
>>
>>I include the .tmh file and define the configuration as:
>>#define TRACE_LEVEL_NONE 0 // Tracing is not on
>>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or termination
>>#define TRACE_LEVEL_ERROR 2 // Severe errors that need logging
>>#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation
>>failure
>>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
>>cases(e.g.,Entry-Exit)
>>
>>#define WPP_CONTROL_GUIDS <br>>> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
>>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>>> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 = 0x00000001
/ <br>>> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 = 0x00000010 /
<br>>> /
You can have up to 32 defines. If you want more than
that,<br>>> you have to provide another trace control GUID */<br>>> )
>>
>>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>>> WPP_LEVEL_LOGGER(flags)
>>
>>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>>> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
>>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
>>
>>Then I call the trace message in the code as follows:
>> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
>>(“Initializing…%s\n”, AdapterName));
>>
>>interrupt.cpp(91) : error C2143: syntax error : missing ‘)’ before
>>‘constant
>>interrupt.cpp(91) : error C2059: syntax error : ‘)’
>>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
>>identifier not d, even with argument-dependent lookup
>>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’: identifier

>>not f , even with argument-dependent lookup
>>
>>If the trace message in the code on lines 88,89 and 90 is as follows:
>>
>> MyTraceEvents(TRACE_LEVEL_INFORMATION, “Initializing…%d\n”,
>>Adapter);
>> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”, Adapter);
>> MyTraceEvents(“Initializing…\n”);
>>
>>I get the compilation error:
>>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not
>>found, even with argument-dependent lookup
>>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not
>>found, even with argument-dependent lookup
>>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not
>>found, even with argument-dependent lookup
>>
>>Hope I am getting closer to the solution.
>>Manasi
>>
>> >From: “Jose Sua”
>> >Reply-To: “Windows System Software Devs Interest List”
>> >
>> >To: “Windows System Software Devs Interest List”
>> >
>> >Subject: RE: [ntdev] enabling wpp
>> >Date: Wed, 9 Mar 2005 10:08:36 -0800
>> >
>> >DoTraceMessage is a macro, is the default trace macro which is
>> >recognized by the WPP preprocesor. You can also define your own and
>> >tell the preprocessor the name of it in your sources file with
>> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
>> >statement and let WPP scan it. In your example you are not defining
>>“TRACE”
>> >therefore the preprocessor ignores it and only expands the found
>> >DoTraceMessage defined in #define TRACE(A,LVL,S)
>> >
>> >The general format of a valid trace message function is as follows:
>> >
>> >FunctionName(Conditions…,“Message”,MessageVariables…);
>> >
>> >This is expanded into:
>> >
>> >If (Conditions enabled) {
>> >
>> > Add the flag value, message, and message formatting to the PDB
>> >symbol file;
>> >
>> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
>> >
>> >}
>> >
>> >When you do a macro for tracing, you must provide:
>> >How to check if tracing is enabled, and the logger handle for the
>> >trace
>>
>> >function.
>> >
>> >So if you define the trace macro as:
>> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
>> >You also need to define :
>> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)
>> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
>> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >=

>> >lvl)
>> >
>> >A trace statemet will look like:
>> > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
>>%d”,
>> >“World” , i);
>> >
>> >
>> >Is this what you want to do?
>> >
>> >You can further simplify by defining more macros assume that you
>> >define
>>
>> >a flag= Unusual, and want a macro that traces for
>> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
>> >
>> >Method 1: define this in your code and have tracewpp scan the file
>> >with
>>
>> >the -scan:filename option In this case you can define additional
>> >configuration for the trace macro such as prefix and suffix, assumes

>> >that you have a var named hr.
>> >// begin_wpp config
>> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
>> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
>> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
>> >
>> >Method 2: in the source file hace
>> >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…)
>> >
>> >In both cases the trace macro in your code will look like:
>> >
>> >MYTRACE(“Init Adapter %s”, AdapterName);
>> >
>> >Thanks,
>> >Jose Sua
>> >Microsoft Corporation
>> >
>> >This posting is provided “AS IS” with no warranties and confers no
>> >rights.
>> >-----Original Message-----
>> >From: xxxxx@lists.osr.com
>> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>> >Sent: Tuesday, March 08, 2005 6:00 PM
>> >To: Windows System Software Devs Interest List
>> >Subject: RE: [ntdev] enabling wpp
>> >
>> >Yes, I am.
>> >
>> >I also tried TraceEvents and that gives me the same problem.
>> >
>> >Manasi
>> >
>> > >From: “Doron Holan”
>> > >Reply-To: “Windows System Software Devs Interest List”
>> > >
>> > >To: “Windows System Software Devs Interest List”
>> > >
>> > >Subject: RE: [ntdev] enabling wpp
>> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
>> > >
>> > >Are you wrapping the #include of the .tmh file in an extern “C”?
>> > >
>> > >Ie
>> > >
>> > >extern “C” {
>> > >#include “Foo.tmh”
>> > >}
>> > >
>> > >For foo.cpp?
>> > >
>> > >d
>> > >
>> > >-----Original Message-----
>> > >From: xxxxx@lists.osr.com
>> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
>> > >Deval
>> > >Sent: Tuesday, March 08, 2005 4:45 PM
>> > >To: Windows System Software Devs Interest List
>> > >Subject: [ntdev] enabling wpp
>> > >
>> > >Hi all,
>> > > I am trying to enable WPP in my driver. In my free version
>> > >trace
>> >
>> > >macros to print out the DoTraceMessage string.
>> > > #define TRACE(A,LVL,S)
>> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
>> > >LVL, S); where is is the data string. I also added a bunch of
>> > >debug levels and functions for using here.
>> > >
>> > >In the driver entry, I added
>> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
>> > >similarly in the shutdown function I stop the tracing.
>> > >
>> > >In the makefile, i added :
>> > >
>> > >RUN_WPP=$(SOURCES)<br>>> > > -km<br>>> > > -dll<br>>> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
>> > >
>> > >In each of my .cpp files I include the corresponding .tmh file.
>> > >
>> > >The trace message in the code looks like:
>> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
>> > >
>> > >When I build all this, I get error # 2065,
>> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
>> > >: undeclared identifier.
>> > >
>> > >I am at a loss as to what identifier it is looking for and where
>> > >should
>> >
>> > >i define it.
>> > >
>> > >Thanks,
>> > >Manasi
>> > >
>> > >
>> > >
>> > >—
>> > >Questions? First check the Kernel Driver FAQ at
>> > >http://www.osronline.com/article.cfm?id=256
>> > >
>> > >You are currently subscribed to ntdev as:
>> > >xxxxx@windows.microsoft.com To unsubscribe send a blank email to
>> > >xxxxx@lists.osr.com
>> > >
>> > >—
>> > >Questions? First check the Kernel Driver FAQ at
>> > >http://www.osronline.com/article.cfm?id=256
>> > >
>> > >You are currently subscribed to ntdev as: unknown lmsubst tag
>>argument:
>> >’‘
>> > >To unsubscribe send a blank email to
>> > >xxxxx@lists.osr.com
>> >
>> >
>> >
>> >—
>> >Questions? First check the Kernel Driver FAQ at
>> >http://www.osronline.com/article.cfm?id=256
>> >
>> >You are currently subscribed to ntdev as: xxxxx@microsoft.com To
>> >unsubscribe send a blank email to xxxxx@lists.osr.com
>> >
>> >—
>> >Questions? First check the Kernel Driver FAQ at
>> >http://www.osronline.com/article.cfm?id=256
>> >
>> >You are currently subscribed to ntdev as: unknown lmsubst tag
argument:
>>’'
>> >To unsubscribe send a blank email to
>> >xxxxx@lists.osr.com
>>
>>
>>
>>—
>>Questions? First check the Kernel Driver FAQ at
>>http://www.osronline.com/article.cfm?id=256
>>
>>You are currently subscribed to ntdev as: xxxxx@microsoft.com To
>>unsubscribe send a blank email to xxxxx@lists.osr.com
>>
>>—
>>Questions? First check the Kernel Driver FAQ at
>>http://www.osronline.com/article.cfm?id=256
>>
>>You are currently subscribed to ntdev as: unknown lmsubst tag
argument: ‘’
>>To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@hotmail.com To
>unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

I had a multiple definition of the flags which was causing all kinds of
problems.

After I compiled it, I tried to run tracelog to capture messages as,
I did a tracelog -enumguids to see if the guid is registered and then

tracelog –guid #guidnum –level 4 –flag 31 –start log_driver

After the test is complete, i stopped the tracelog as, tracelog –stop
log_driver

When I run the etl file obtained, i dont see any traces and I’m wondering
why is that.

Thanks,
Manasi

From: “Jose Sua”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Wed, 16 Mar 2005 11:12:08 -0800
>
>What was the Problem ?
>
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Wednesday, March 16, 2005 9:06 AM
>To: Windows System Software Devs Interest List
>Subject: RE: [ntdev] enabling wpp
>
>Allright! I got all the issues sorted out and now have compiled code.
>Thanks a lot to all the people on this list who helped out.
>
>Manasi
>
> >From: “Manasi Deval”
> >Reply-To: “Windows System Software Devs Interest List”
> >
> >To: “Windows System Software Devs Interest List”
> >Subject: RE: [ntdev] enabling wpp
> >Date: Tue, 15 Mar 2005 15:07:12 -0800
> >
> >If I do exactly that, such that I print 2 messages on lines 91 and 92
> >as
> >follows:
> > TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing…
>\n”);
> > MyTraceEvents(“Initializing…\n”);
> >The code continues to get compilation problems as:
> >
> >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> >class/struct/union type
> >interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
> >class/struct/union t ype
> >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> >class/struct/union type
> >interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
> >class/struct/union type
> >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found, even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> >class/struct/union type
> >interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
> >class/struct/union t ype
> >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> >class/struct/union type
> >interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
> >class/struct/union type
> >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found, even
>
> >with arg ument-dependent lookup
> >
> >Please also help me understand what the WPP_BIT errors mean. I can see
> >the enumberator in the .tmh file so I’m not sure what else i need to
>define.
> >Manasi
> >
> >>From: “Jose Sua”
> >>Reply-To: “Windows System Software Devs Interest List”
> >>
> >>To: “Windows System Software Devs Interest List”
> >>Subject: RE: [ntdev] enabling wpp
> >>Date: Tue, 15 Mar 2005 10:31:23 -0800
> >>
> >>In the Macro use Level not TRACE_LEVEL_INFORMATION. This refers to an
> >>internal WPP control structure not a value.
> >>Must be:
> >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> >>DBG_NORMAL).Level >= lvl)
> >>
> >>RUN_WPP=$(SOURCES)<br>> >> -km<br>> >> -dll<br>> >> -DMacroName<br>> >>
> >>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(MS
> >>G,
> >>…)<br>> >> -func:TraceEvents(LEVEL,FLAG,MSG…)
> >>
> >>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this macro.
> >>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags =DBG_INIT_1 to
> >>trcae Level =4 and Flags = 1
> >>
> >>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to initialize
> >>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags = 1
> >>
> >>
> >>Thanks,
> >>Jose Sua
> >>ETW Dev Team
> >>Microsoft Corporation
> >>
> >>This posting is provided “AS IS” with no warranties and confers no
> >>rights.
> >>-----Original Message-----
> >>From: xxxxx@lists.osr.com
> >>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> >>Sent: Tuesday, March 15, 2005 9:24 AM
> >>To: Windows System Software Devs Interest List
> >>Subject: RE: [ntdev] enabling wpp
> >>
> >>Thanks for all the help. I think I’m closer but not quite done yet.
> >>
> >>When I make the changes, to define the macro in the build file as:
> >>RUN_WPP=$(SOURCES)<br>> >> -km<br>> >> -dll<br>> >> -DMacroName<br>> >> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> >> -func:TraceEvents(LEVEL,FLAG,(MSG…))
> >>
> >>I include the .tmh file and define the configuration as:
> >>#define TRACE_LEVEL_NONE 0 // Tracing is not on
> >>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or termination
> >>#define TRACE_LEVEL_ERROR 2 // Severe errors that need logging
> >>#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation
> >>failure
> >>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
> >>cases(e.g.,Entry-Exit)
> >>
> >>#define WPP_CONTROL_GUIDS <br>> >> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
> >>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> >> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 = 0x00000001
>/ <br>> >> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 = 0x00000010 /
><br>> >> /
You can have up to 32 defines. If you want more than
>that,<br>> >> you have to provide another trace control GUID */<br>> >> )
> >>
> >>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> >> WPP_LEVEL_LOGGER(flags)
> >>
> >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> >>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
> >>
> >>Then I call the trace message in the code as follows:
> >> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
> >>(“Initializing…%s\n”, AdapterName));
> >>
> >>interrupt.cpp(91) : error C2143: syntax error : missing ‘)’ before
> >>‘constant
> >>interrupt.cpp(91) : error C2059: syntax error : ‘)’
> >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
> >>identifier not d, even with argument-dependent lookup
> >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’: identifier
>
> >>not f , even with argument-dependent lookup
> >>
> >>If the trace message in the code on lines 88,89 and 90 is as follows:
> >>
> >> MyTraceEvents(TRACE_LEVEL_INFORMATION, “Initializing…%d\n”,
> >>Adapter);
> >> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”, Adapter);
> >> MyTraceEvents(“Initializing…\n”);
> >>
> >>I get the compilation error:
> >>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not
> >>found, even with argument-dependent lookup
> >>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not
> >>found, even with argument-dependent lookup
> >>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not
> >>found, even with argument-dependent lookup
> >>
> >>Hope I am getting closer to the solution.
> >>Manasi
> >>
> >> >From: “Jose Sua”
> >> >Reply-To: “Windows System Software Devs Interest List”
> >> >
> >> >To: “Windows System Software Devs Interest List”
> >> >
> >> >Subject: RE: [ntdev] enabling wpp
> >> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> >> >
> >> >DoTraceMessage is a macro, is the default trace macro which is
> >> >recognized by the WPP preprocesor. You can also define your own and
> >> >tell the preprocessor the name of it in your sources file with
> >> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
> >> >statement and let WPP scan it. In your example you are not defining
> >>“TRACE”
> >> >therefore the preprocessor ignores it and only expands the found
> >> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> >> >
> >> >The general format of a valid trace message function is as follows:
> >> >
> >> >FunctionName(Conditions…,“Message”,MessageVariables…);
> >> >
> >> >This is expanded into:
> >> >
> >> >If (Conditions enabled) {
> >> >
> >> > Add the flag value, message, and message formatting to the PDB
> >> >symbol file;
> >> >
> >> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
> >> >
> >> >}
> >> >
> >> >When you do a macro for tracing, you must provide:
> >> >How to check if tracing is enabled, and the logger handle for the
> >> >trace
> >>
> >> >function.
> >> >
> >> >So if you define the trace macro as:
> >> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> >> >You also need to define :
> >> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)
> >> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
> >> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level >=
>
> >> >lvl)
> >> >
> >> >A trace statemet will look like:
> >> > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
> >>%d”,
> >> >“World” , i);
> >> >
> >> >
> >> >Is this what you want to do?
> >> >
> >> >You can further simplify by defining more macros assume that you
> >> >define
> >>
> >> >a flag= Unusual, and want a macro that traces for
> >> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> >> >
> >> >Method 1: define this in your code and have tracewpp scan the file
> >> >with
> >>
> >> >the -scan:filename option In this case you can define additional
> >> >configuration for the trace macro such as prefix and suffix, assumes
>
> >> >that you have a var named hr.
> >> >// begin_wpp config
> >> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
> >> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
> >> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> >> >
> >> >Method 2: in the source file hace
> >> >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…)
> >> >
> >> >In both cases the trace macro in your code will look like:
> >> >
> >> >MYTRACE(“Init Adapter %s”, AdapterName);
> >> >
> >> >Thanks,
> >> >Jose Sua
> >> >Microsoft Corporation
> >> >
> >> >This posting is provided “AS IS” with no warranties and confers no
> >> >rights.
> >> >-----Original Message-----
> >> >From: xxxxx@lists.osr.com
> >> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> >> >Sent: Tuesday, March 08, 2005 6:00 PM
> >> >To: Windows System Software Devs Interest List
> >> >Subject: RE: [ntdev] enabling wpp
> >> >
> >> >Yes, I am.
> >> >
> >> >I also tried TraceEvents and that gives me the same problem.
> >> >
> >> >Manasi
> >> >
> >> > >From: “Doron Holan”
> >> > >Reply-To: “Windows System Software Devs Interest List”
> >> > >
> >> > >To: “Windows System Software Devs Interest List”
> >> > >
> >> > >Subject: RE: [ntdev] enabling wpp
> >> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> >> > >
> >> > >Are you wrapping the #include of the .tmh file in an extern “C”?
> >> > >
> >> > >Ie
> >> > >
> >> > >extern “C” {
> >> > >#include “Foo.tmh”
> >> > >}
> >> > >
> >> > >For foo.cpp?
> >> > >
> >> > >d
> >> > >
> >> > >-----Original Message-----
> >> > >From: xxxxx@lists.osr.com
> >> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> >> > >Deval
> >> > >Sent: Tuesday, March 08, 2005 4:45 PM
> >> > >To: Windows System Software Devs Interest List
> >> > >Subject: [ntdev] enabling wpp
> >> > >
> >> > >Hi all,
> >> > > I am trying to enable WPP in my driver. In my free version
> >> > >trace
> >> >
> >> > >macros to print out the DoTraceMessage string.
> >> > > #define TRACE(A,LVL,S)
> >> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
> >> > >LVL, S); where is is the data string. I also added a bunch of
> >> > >debug levels and functions for using here.
> >> > >
> >> > >In the driver entry, I added
> >> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
> >> > >similarly in the shutdown function I stop the tracing.
> >> > >
> >> > >In the makefile, i added :
> >> > >
> >> > >RUN_WPP=$(SOURCES)<br>> >> > > -km<br>> >> > > -dll<br>> >> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> >> > >
> >> > >In each of my .cpp files I include the corresponding .tmh file.
> >> > >
> >> > >The trace message in the code looks like:
> >> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> >> > >
> >> > >When I build all this, I get error # 2065,
> >> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> >> > >: undeclared identifier.
> >> > >
> >> > >I am at a loss as to what identifier it is looking for and where
> >> > >should
> >> >
> >> > >i define it.
> >> > >
> >> > >Thanks,
> >> > >Manasi
> >> > >
> >> > >
> >> > >
> >> > >—
> >> > >Questions? First check the Kernel Driver FAQ at
> >> > >http://www.osronline.com/article.cfm?id=256
> >> > >
> >> > >You are currently subscribed to ntdev as:
> >> > >xxxxx@windows.microsoft.com To unsubscribe send a blank email to
> >> > >xxxxx@lists.osr.com
> >> > >
> >> > >—
> >> > >Questions? First check the Kernel Driver FAQ at
> >> > >http://www.osronline.com/article.cfm?id=256
> >> > >
> >> > >You are currently subscribed to ntdev as: unknown lmsubst tag
> >>argument:
> >> >’‘
> >> > >To unsubscribe send a blank email to
> >> > >xxxxx@lists.osr.com
> >> >
> >> >
> >> >
> >> >—
> >> >Questions? First check the Kernel Driver FAQ at
> >> >http://www.osronline.com/article.cfm?id=256
> >> >
> >> >You are currently subscribed to ntdev as: xxxxx@microsoft.com To
> >> >unsubscribe send a blank email to xxxxx@lists.osr.com
> >> >
> >> >—
> >> >Questions? First check the Kernel Driver FAQ at
> >> >http://www.osronline.com/article.cfm?id=256
> >> >
> >> >You are currently subscribed to ntdev as: unknown lmsubst tag
>argument:
> >>’'
> >> >To unsubscribe send a blank email to
> >> >xxxxx@lists.osr.com
> >>
> >>
> >>
> >>—
> >>Questions? First check the Kernel Driver FAQ at
> >>http://www.osronline.com/article.cfm?id=256
> >>
> >>You are currently subscribed to ntdev as: xxxxx@microsoft.com To
> >>unsubscribe send a blank email to xxxxx@lists.osr.com
> >>
> >>—
> >>Questions? First check the Kernel Driver FAQ at
> >>http://www.osronline.com/article.cfm?id=256
> >>
> >>You are currently subscribed to ntdev as: unknown lmsubst tag
>argument: ‘’
> >>To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
> >unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
>To unsubscribe send a blank email to xxxxx@lists.osr.com

What tool are u using to view the trace? What do you get?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
Sent: Friday, March 18, 2005 11:20 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] enabling wpp

I had a multiple definition of the flags which was causing all kinds of
problems.

After I compiled it, I tried to run tracelog to capture messages as, I
did a tracelog -enumguids to see if the guid is registered and then

tracelog -guid #guidnum -level 4 -flag 31 -start log_driver

After the test is complete, i stopped the tracelog as, tracelog -stop
log_driver

When I run the etl file obtained, i dont see any traces and I’m
wondering why is that.

Thanks,
Manasi

From: “Jose Sua”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Wed, 16 Mar 2005 11:12:08 -0800
>
>What was the Problem ?
>
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Wednesday, March 16, 2005 9:06 AM
>To: Windows System Software Devs Interest List
>Subject: RE: [ntdev] enabling wpp
>
>Allright! I got all the issues sorted out and now have compiled code.
>Thanks a lot to all the people on this list who helped out.
>
>Manasi
>
> >From: “Manasi Deval”
> >Reply-To: “Windows System Software Devs Interest List”
> >
> >To: “Windows System Software Devs Interest List”
> >
> >Subject: RE: [ntdev] enabling wpp
> >Date: Tue, 15 Mar 2005 15:07:12 -0800
> >
> >If I do exactly that, such that I print 2 messages on lines 91 and 92

> >as
> >follows:
> > TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing…
>\n”);
> > MyTraceEvents(“Initializing…\n”);
> >The code continues to get compilation problems as:
> >
> >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> >class/struct/union type
> >interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
> >class/struct/union t ype
> >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> >class/struct/union type
> >interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
> >class/struct/union type
> >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> >even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> >even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> >even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> >even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> >class/struct/union type
> >interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
> >class/struct/union t ype
> >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> >class/struct/union type
> >interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
> >class/struct/union type
> >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> >even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> >even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> >even
>
> >with arg ument-dependent lookup
> >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> >even
>
> >with arg ument-dependent lookup
> >
> >Please also help me understand what the WPP_BIT errors mean. I can
> >see the enumberator in the .tmh file so I’m not sure what else i need

> >to
>define.
> >Manasi
> >
> >>From: “Jose Sua”
> >>Reply-To: “Windows System Software Devs Interest List”
> >>
> >>To: “Windows System Software Devs Interest List”
> >>
> >>Subject: RE: [ntdev] enabling wpp
> >>Date: Tue, 15 Mar 2005 10:31:23 -0800
> >>
> >>In the Macro use Level not TRACE_LEVEL_INFORMATION. This refers to
> >>an internal WPP control structure not a value.
> >>Must be:
> >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> >>DBG_NORMAL).Level >= lvl)
> >>
> >>RUN_WPP=$(SOURCES)<br>> >> -km<br>> >> -dll<br>> >> -DMacroName<br>> >>
> >>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(
> >>MS
> >>G,
> >>…)<br>> >> -func:TraceEvents(LEVEL,FLAG,MSG…)
> >>
> >>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this macro.
> >>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags =DBG_INIT_1 to
> >>trcae Level =4 and Flags = 1
> >>
> >>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to initialize
> >>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags = 1
> >>
> >>
> >>Thanks,
> >>Jose Sua
> >>ETW Dev Team
> >>Microsoft Corporation
> >>
> >>This posting is provided “AS IS” with no warranties and confers no
> >>rights.
> >>-----Original Message-----
> >>From: xxxxx@lists.osr.com
> >>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> >>Sent: Tuesday, March 15, 2005 9:24 AM
> >>To: Windows System Software Devs Interest List
> >>Subject: RE: [ntdev] enabling wpp
> >>
> >>Thanks for all the help. I think I’m closer but not quite done yet.
> >>
> >>When I make the changes, to define the macro in the build file as:
> >>RUN_WPP=$(SOURCES)<br>> >> -km<br>> >> -dll<br>> >> -DMacroName<br>> >> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> >> -func:TraceEvents(LEVEL,FLAG,(MSG…))
> >>
> >>I include the .tmh file and define the configuration as:
> >>#define TRACE_LEVEL_NONE 0 // Tracing is not on
> >>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or termination
> >>#define TRACE_LEVEL_ERROR 2 // Severe errors that need
logging
> >>#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation
> >>failure
> >>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
> >>cases(e.g.,Entry-Exit)
> >>
> >>#define WPP_CONTROL_GUIDS <br>> >> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
> >>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> >> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 = 0x00000001
>/ <br>> >> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 = 0x00000010
/
><br>> >> /
You can have up to 32 defines. If you want more than
>that,<br>> >> you have to provide another trace control GUID */<br>> >> )
> >>
> >>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> >> WPP_LEVEL_LOGGER(flags)
> >>
> >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> >>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
> >>
> >>Then I call the trace message in the code as follows:
> >> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
> >>(“Initializing…%s\n”, AdapterName));
> >>
> >>interrupt.cpp(91) : error C2143: syntax error : missing ‘)’ before
> >>‘constant
> >>interrupt.cpp(91) : error C2059: syntax error : ‘)’
> >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
> >>identifier not d, even with argument-dependent lookup
> >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’:
> >>identifier
>
> >>not f , even with argument-dependent lookup
> >>
> >>If the trace message in the code on lines 88,89 and 90 is as
follows:
> >>
> >> MyTraceEvents(TRACE_LEVEL_INFORMATION, “Initializing…%d\n”,
> >>Adapter);
> >> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”, Adapter);
> >> MyTraceEvents(“Initializing…\n”);
> >>
> >>I get the compilation error:
> >>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not
> >>found, even with argument-dependent lookup
> >>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not
> >>found, even with argument-dependent lookup
> >>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not
> >>found, even with argument-dependent lookup
> >>
> >>Hope I am getting closer to the solution.
> >>Manasi
> >>
> >> >From: “Jose Sua”
> >> >Reply-To: “Windows System Software Devs Interest List”
> >> >
> >> >To: “Windows System Software Devs Interest List”
> >> >
> >> >Subject: RE: [ntdev] enabling wpp
> >> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> >> >
> >> >DoTraceMessage is a macro, is the default trace macro which is
> >> >recognized by the WPP preprocesor. You can also define your own
> >> >and tell the preprocessor the name of it in your sources file with

> >> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
> >> >statement and let WPP scan it. In your example you are not
> >> >defining
> >>“TRACE”
> >> >therefore the preprocessor ignores it and only expands the found
> >> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> >> >
> >> >The general format of a valid trace message function is as
follows:
> >> >
> >> >FunctionName(Conditions…,“Message”,MessageVariables…);
> >> >
> >> >This is expanded into:
> >> >
> >> >If (Conditions enabled) {
> >> >
> >> > Add the flag value, message, and message formatting to the
> >> >PDB symbol file;
> >> >
> >> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
> >> >
> >> >}
> >> >
> >> >When you do a macro for tracing, you must provide:
> >> >How to check if tracing is enabled, and the logger handle for the
> >> >trace
> >>
> >> >function.
> >> >
> >> >So if you define the trace macro as:
> >> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> >> >You also need to define :
> >> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)
> >> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
> >> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level
> >> >>=
>
> >> >lvl)
> >> >
> >> >A trace statemet will look like:
> >> > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
> >>%d”,
> >> >“World” , i);
> >> >
> >> >
> >> >Is this what you want to do?
> >> >
> >> >You can further simplify by defining more macros assume that you
> >> >define
> >>
> >> >a flag= Unusual, and want a macro that traces for
> >> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> >> >
> >> >Method 1: define this in your code and have tracewpp scan the file

> >> >with
> >>
> >> >the -scan:filename option In this case you can define additional
> >> >configuration for the trace macro such as prefix and suffix,
> >> >assumes
>
> >> >that you have a var named hr.
> >> >// begin_wpp config
> >> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
> >> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
> >> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> >> >
> >> >Method 2: in the source file hace
> >> >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> >> >)
> >> >
> >> >In both cases the trace macro in your code will look like:
> >> >
> >> >MYTRACE(“Init Adapter %s”, AdapterName);
> >> >
> >> >Thanks,
> >> >Jose Sua
> >> >Microsoft Corporation
> >> >
> >> >This posting is provided “AS IS” with no warranties and confers no

> >> >rights.
> >> >-----Original Message-----
> >> >From: xxxxx@lists.osr.com
> >> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> >> >Deval
> >> >Sent: Tuesday, March 08, 2005 6:00 PM
> >> >To: Windows System Software Devs Interest List
> >> >Subject: RE: [ntdev] enabling wpp
> >> >
> >> >Yes, I am.
> >> >
> >> >I also tried TraceEvents and that gives me the same problem.
> >> >
> >> >Manasi
> >> >
> >> > >From: “Doron Holan”
> >> > >Reply-To: “Windows System Software Devs Interest List”
> >> > >
> >> > >To: “Windows System Software Devs Interest List”
> >> > >
> >> > >Subject: RE: [ntdev] enabling wpp
> >> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> >> > >
> >> > >Are you wrapping the #include of the .tmh file in an extern “C”?
> >> > >
> >> > >Ie
> >> > >
> >> > >extern “C” {
> >> > >#include “Foo.tmh”
> >> > >}
> >> > >
> >> > >For foo.cpp?
> >> > >
> >> > >d
> >> > >
> >> > >-----Original Message-----
> >> > >From: xxxxx@lists.osr.com
> >> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> >> > >Deval
> >> > >Sent: Tuesday, March 08, 2005 4:45 PM
> >> > >To: Windows System Software Devs Interest List
> >> > >Subject: [ntdev] enabling wpp
> >> > >
> >> > >Hi all,
> >> > > I am trying to enable WPP in my driver. In my free
> >> > >version trace
> >> >
> >> > >macros to print out the DoTraceMessage string.
> >> > > #define TRACE(A,LVL,S)
> >> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
> >> > >LVL, S); where is is the data string. I also added a bunch of
> >> > >debug levels and functions for using here.
> >> > >
> >> > >In the driver entry, I added
> >> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
> >> > >similarly in the shutdown function I stop the tracing.
> >> > >
> >> > >In the makefile, i added :
> >> > >
> >> > >RUN_WPP=$(SOURCES)<br>> >> > > -km<br>> >> > > -dll<br>> >> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> >> > >
> >> > >In each of my .cpp files I include the corresponding .tmh file.
> >> > >
> >> > >The trace message in the code looks like:
> >> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> >> > >
> >> > >When I build all this, I get error # 2065,
> >> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> >> > >: undeclared identifier.
> >> > >
> >> > >I am at a loss as to what identifier it is looking for and where

> >> > >should
> >> >
> >> > >i define it.
> >> > >
> >> > >Thanks,
> >> > >Manasi
> >> > >
> >> > >
> >> > >
> >> > >—
> >> > >Questions? First check the Kernel Driver FAQ at
> >> > >http://www.osronline.com/article.cfm?id=256
> >> > >
> >> > >You are currently subscribed to ntdev as:
> >> > >xxxxx@windows.microsoft.com To unsubscribe send a blank email
> >> > >to xxxxx@lists.osr.com
> >> > >
> >> > >—
> >> > >Questions? First check the Kernel Driver FAQ at
> >> > >http://www.osronline.com/article.cfm?id=256
> >> > >
> >> > >You are currently subscribed to ntdev as: unknown lmsubst tag
> >>argument:
> >> >’‘
> >> > >To unsubscribe send a blank email to
> >> > >xxxxx@lists.osr.com
> >> >
> >> >
> >> >
> >> >—
> >> >Questions? First check the Kernel Driver FAQ at
> >> >http://www.osronline.com/article.cfm?id=256
> >> >
> >> >You are currently subscribed to ntdev as: xxxxx@microsoft.com To

> >> >unsubscribe send a blank email to xxxxx@lists.osr.com
> >> >
> >> >—
> >> >Questions? First check the Kernel Driver FAQ at
> >> >http://www.osronline.com/article.cfm?id=256
> >> >
> >> >You are currently subscribed to ntdev as: unknown lmsubst tag
>argument:
> >>’‘
> >> >To unsubscribe send a blank email to
> >> >xxxxx@lists.osr.com
> >>
> >>
> >>
> >>—
> >>Questions? First check the Kernel Driver FAQ at
> >>http://www.osronline.com/article.cfm?id=256
> >>
> >>You are currently subscribed to ntdev as: xxxxx@microsoft.com To
> >>unsubscribe send a blank email to xxxxx@lists.osr.com
> >>
> >>—
> >>Questions? First check the Kernel Driver FAQ at
> >>http://www.osronline.com/article.cfm?id=256
> >>
> >>You are currently subscribed to ntdev as: unknown lmsubst tag
>argument: ‘’
> >>To unsubscribe send a blank email to
> >>xxxxx@lists.osr.com
> >
> >
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
> >unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com

>To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument:
’'
>To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to xxxxx@lists.osr.com

Traceview is a bit easier to use. It is in the ddk tools.

=====================
Mark Roddy
Windows .NET/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
Sent: Friday, March 18, 2005 2:20 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] enabling wpp

I had a multiple definition of the flags which was causing
all kinds of problems.

After I compiled it, I tried to run tracelog to capture
messages as, I did a tracelog -enumguids to see if the guid
is registered and then

tracelog -guid #guidnum -level 4 -flag 31 -start log_driver

After the test is complete, i stopped the tracelog as,
tracelog -stop log_driver

When I run the etl file obtained, i dont see any traces and
I’m wondering why is that.

Thanks,
Manasi

>From: “Jose Sua”
> >Reply-To: “Windows System Software Devs Interest List”
> >
> >To: “Windows System Software Devs Interest List”
>
> >Subject: RE: [ntdev] enabling wpp
> >Date: Wed, 16 Mar 2005 11:12:08 -0800
> >
> >What was the Problem ?
> >
> >-----Original Message-----
> >From: xxxxx@lists.osr.com
> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> >Sent: Wednesday, March 16, 2005 9:06 AM
> >To: Windows System Software Devs Interest List
> >Subject: RE: [ntdev] enabling wpp
> >
> >Allright! I got all the issues sorted out and now have compiled code.
> >Thanks a lot to all the people on this list who helped out.
> >
> >Manasi
> >
> > >From: “Manasi Deval”
> > >Reply-To: “Windows System Software Devs Interest List”
> > >
> > >To: “Windows System Software Devs Interest List”
> > >
> > >Subject: RE: [ntdev] enabling wpp
> > >Date: Tue, 15 Mar 2005 15:07:12 -0800
> > >
> > >If I do exactly that, such that I print 2 messages on
> lines 91 and 92
> > >as
> > >follows:
> > > TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing…
> >\n”);
> > > MyTraceEvents(“Initializing…\n”);
> > >The code continues to get compilation problems as:
> > >
> > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > >class/struct/union type
> > >interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
> > >class/struct/union t ype
> > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > >class/struct/union type
> > >interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
> > >class/struct/union type
> > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > >class/struct/union type
> > >interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
> > >class/struct/union t ype
> > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > >class/struct/union type
> > >interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
> > >class/struct/union type
> > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >
> > >Please also help me understand what the WPP_BIT errors mean. I can
> > >see the enumberator in the .tmh file so I’m not sure what
> else i need
> > >to
> >define.
> > >Manasi
> > >
> > >>From: “Jose Sua”
> > >>Reply-To: “Windows System Software Devs Interest List”
> > >>
> > >>To: “Windows System Software Devs Interest List”
> > >>
> > >>Subject: RE: [ntdev] enabling wpp
> > >>Date: Tue, 15 Mar 2005 10:31:23 -0800
> > >>
> > >>In the Macro use Level not TRACE_LEVEL_INFORMATION. This
> refers to
> > >>an internal WPP control structure not a value.
> > >>Must be:
> > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > >>DBG_NORMAL).Level >= lvl)
> > >>
> > >>RUN_WPP=$(SOURCES)<br>> > >> -km<br>> > >> -dll<br>> > >> -DMacroName<br>> > >>
> >
> >>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(
> > >>MS
> > >>G,
> > >>…)<br>> > >> -func:TraceEvents(LEVEL,FLAG,MSG…)
> > >>
> > >>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this macro.
> > >>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags
> =DBG_INIT_1 to
> > >>trcae Level =4 and Flags = 1
> > >>
> > >>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to initialize
> > >>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags = 1
> > >>
> > >>
> > >>Thanks,
> > >>Jose Sua
> > >>ETW Dev Team
> > >>Microsoft Corporation
> > >>
> > >>This posting is provided “AS IS” with no warranties and
> confers no
> > >>rights.
> > >>-----Original Message-----
> > >>From: xxxxx@lists.osr.com
> > >>[mailto:xxxxx@lists.osr.com] On Behalf Of
> Manasi Deval
> > >>Sent: Tuesday, March 15, 2005 9:24 AM
> > >>To: Windows System Software Devs Interest List
> > >>Subject: RE: [ntdev] enabling wpp
> > >>
> > >>Thanks for all the help. I think I’m closer but not quite
> done yet.
> > >>
> > >>When I make the changes, to define the macro in the build file as:
> > >>RUN_WPP=$(SOURCES)<br>> > >> -km<br>> > >> -dll<br>> > >> -DMacroName<br>> > >> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> > >> -func:TraceEvents(LEVEL,FLAG,(MSG…))
> > >>
> > >>I include the .tmh file and define the configuration as:
> > >>#define TRACE_LEVEL_NONE 0 // Tracing is not on
> > >>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or
> termination
> > >>#define TRACE_LEVEL_ERROR 2 // Severe errors that
> need logging
> > >>#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation
> > >>failure
> > >>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
> > >>cases(e.g.,Entry-Exit)
> > >>
> > >>#define WPP_CONTROL_GUIDS <br>> > >> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
> > >>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> > >> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 =
> 0x00000001
> >/ <br>> > >> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 =
> 0x00000010 /
> ><br>> > >> /
You can have up to 32 defines. If you want more than
> >that,<br>> > >> you have to provide another trace control GUID */<br>> > >> )
> > >>
> > >>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> > >> WPP_LEVEL_LOGGER(flags)
> > >>
> > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > >>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
> > >>
> > >>Then I call the trace message in the code as follows:
> > >> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
> > >>(“Initializing…%s\n”, AdapterName));
> > >>
> > >>interrupt.cpp(91) : error C2143: syntax error : missing
> ‘)’ before
> > >>‘constant
> > >>interrupt.cpp(91) : error C2059: syntax error : ‘)’
> > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
> > >>identifier not d, even with argument-dependent lookup
> > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’:
> > >>identifier
> >
> > >>not f , even with argument-dependent lookup
> > >>
> > >>If the trace message in the code on lines 88,89 and 90 is
> as follows:
> > >>
> > >> MyTraceEvents(TRACE_LEVEL_INFORMATION, “Initializing…%d\n”,
> > >>Adapter);
> > >> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”, Adapter);
> > >> MyTraceEvents(“Initializing…\n”);
> > >>
> > >>I get the compilation error:
> > >>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not
> > >>found, even with argument-dependent lookup
> > >>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not
> > >>found, even with argument-dependent lookup
> > >>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not
> > >>found, even with argument-dependent lookup
> > >>
> > >>Hope I am getting closer to the solution.
> > >>Manasi
> > >>
> > >> >From: “Jose Sua”
> > >> >Reply-To: “Windows System Software Devs Interest List”
> > >> >
> > >> >To: “Windows System Software Devs Interest List”
> > >> >
> > >> >Subject: RE: [ntdev] enabling wpp
> > >> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> > >> >
> > >> >DoTraceMessage is a macro, is the default trace macro which is
> > >> >recognized by the WPP preprocesor. You can also define your own
> > >> >and tell the preprocessor the name of it in your
> sources file with
> > >> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
> > >> >statement and let WPP scan it. In your example you are not
> > >> >defining
> > >>“TRACE”
> > >> >therefore the preprocessor ignores it and only expands
> the found
> > >> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> > >> >
> > >> >The general format of a valid trace message function is
> as follows:
> > >> >
> > >> >FunctionName(Conditions…,“Message”,MessageVariables…);
> > >> >
> > >> >This is expanded into:
> > >> >
> > >> >If (Conditions enabled) {
> > >> >
> > >> > Add the flag value, message, and message formatting to the
> > >> >PDB symbol file;
> > >> >
> > >> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
> > >> >
> > >> >}
> > >> >
> > >> >When you do a macro for tracing, you must provide:
> > >> >How to check if tracing is enabled, and the logger
> handle for the
> > >> >trace
> > >>
> > >> >function.
> > >> >
> > >> >So if you define the trace macro as:
> > >> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> > >> >You also need to define :
> > >> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags)
> WPP_LEVEL_LOGGER(flags)
> > >> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
> > >> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ##
> flags).Level
> > >> >>=
> >
> > >> >lvl)
> > >> >
> > >> >A trace statemet will look like:
> > >> >
> DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
> > >>%d”,
> > >> >“World” , i);
> > >> >
> > >> >
> > >> >Is this what you want to do?
> > >> >
> > >> >You can further simplify by defining more macros assume
> that you
> > >> >define
> > >>
> > >> >a flag= Unusual, and want a macro that traces for
> > >> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> > >> >
> > >> >Method 1: define this in your code and have tracewpp
> scan the file
> > >> >with
> > >>
> > >> >the -scan:filename option In this case you can define
> additional
> > >> >configuration for the trace macro such as prefix and suffix,
> > >> >assumes
> >
> > >> >that you have a var named hr.
> > >> >// begin_wpp config
> > >> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
> > >> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
> > >> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> > >> >
> > >> >Method 2: in the source file hace
> > >>
> >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> > >> >)
> > >> >
> > >> >In both cases the trace macro in your code will look like:
> > >> >
> > >> >MYTRACE(“Init Adapter %s”, AdapterName);
> > >> >
> > >> >Thanks,
> > >> >Jose Sua
> > >> >Microsoft Corporation
> > >> >
> > >> >This posting is provided “AS IS” with no warranties and
> confers no
> > >> >rights.
> > >> >-----Original Message-----
> > >> >From: xxxxx@lists.osr.com
> > >> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > >> >Deval
> > >> >Sent: Tuesday, March 08, 2005 6:00 PM
> > >> >To: Windows System Software Devs Interest List
> > >> >Subject: RE: [ntdev] enabling wpp
> > >> >
> > >> >Yes, I am.
> > >> >
> > >> >I also tried TraceEvents and that gives me the same problem.
> > >> >
> > >> >Manasi
> > >> >
> > >> > >From: “Doron Holan”
> > >> > >Reply-To: “Windows System Software Devs Interest List”
> > >> > >
> > >> > >To: “Windows System Software Devs Interest List”
> > >> > >
> > >> > >Subject: RE: [ntdev] enabling wpp
> > >> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> > >> > >
> > >> > >Are you wrapping the #include of the .tmh file in an
> extern “C”?
> > >> > >
> > >> > >Ie
> > >> > >
> > >> > >extern “C” {
> > >> > >#include “Foo.tmh”
> > >> > >}
> > >> > >
> > >> > >For foo.cpp?
> > >> > >
> > >> > >d
> > >> > >
> > >> > >-----Original Message-----
> > >> > >From: xxxxx@lists.osr.com
> > >> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > >> > >Deval
> > >> > >Sent: Tuesday, March 08, 2005 4:45 PM
> > >> > >To: Windows System Software Devs Interest List
> > >> > >Subject: [ntdev] enabling wpp
> > >> > >
> > >> > >Hi all,
> > >> > > I am trying to enable WPP in my driver. In my free
> > >> > >version trace
> > >> >
> > >> > >macros to print out the DoTraceMessage string.
> > >> > > #define TRACE(A,LVL,S)
> > >> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
> > >> > >LVL, S); where is is the data string. I also added a bunch of
> > >> > >debug levels and functions for using here.
> > >> > >
> > >> > >In the driver entry, I added
> > >> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
> > >> > >similarly in the shutdown function I stop the tracing.
> > >> > >
> > >> > >In the makefile, i added :
> > >> > >
> > >> > >RUN_WPP=$(SOURCES)<br>> > >> > > -km<br>> > >> > > -dll<br>> > >> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> > >> > >
> > >> > >In each of my .cpp files I include the corresponding
> .tmh file.
> > >> > >
> > >> > >The trace message in the code looks like:
> > >> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> > >> > >
> > >> > >When I build all this, I get error # 2065,
> > >> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> > >> > >: undeclared identifier.
> > >> > >
> > >> > >I am at a loss as to what identifier it is looking
> for and where
> > >> > >should
> > >> >
> > >> > >i define it.
> > >> > >
> > >> > >Thanks,
> > >> > >Manasi
> > >> > >
> > >> > >
> > >> > >
> > >> > >—
> > >> > >Questions? First check the Kernel Driver FAQ at
> > >> > >http://www.osronline.com/article.cfm?id=256
> > >> > >
> > >> > >You are currently subscribed to ntdev as:
> > >> > >xxxxx@windows.microsoft.com To unsubscribe send a
> blank email
> > >> > >to xxxxx@lists.osr.com
> > >> > >
> > >> > >—
> > >> > >Questions? First check the Kernel Driver FAQ at
> > >> > >http://www.osronline.com/article.cfm?id=256
> > >> > >
> > >> > >You are currently subscribed to ntdev as: unknown lmsubst tag
> > >>argument:
> > >> >’‘
> > >> > >To unsubscribe send a blank email to
> > >> > >xxxxx@lists.osr.com
> > >> >
> > >> >
> > >> >
> > >> >—
> > >> >Questions? First check the Kernel Driver FAQ at
> > >> >http://www.osronline.com/article.cfm?id=256
> > >> >
> > >> >You are currently subscribed to ntdev as:
> xxxxx@microsoft.com To
> > >> >unsubscribe send a blank email to
> xxxxx@lists.osr.com
> > >> >
> > >> >—
> > >> >Questions? First check the Kernel Driver FAQ at
> > >> >http://www.osronline.com/article.cfm?id=256
> > >> >
> > >> >You are currently subscribed to ntdev as: unknown lmsubst tag
> >argument:
> > >>’'
> > >> >To unsubscribe send a blank email to
> > >> >xxxxx@lists.osr.com
> > >>
> > >>
> > >>
> > >>—
> > >>Questions? First check the Kernel Driver FAQ at
> > >>http://www.osronline.com/article.cfm?id=256
> > >>
> > >>You are currently subscribed to ntdev as:
> xxxxx@microsoft.com To
> > >>unsubscribe send a blank email to xxxxx@lists.osr.com
> > >>
> > >>—
> > >>Questions? First check the Kernel Driver FAQ at
> > >>http://www.osronline.com/article.cfm?id=256
> > >>
> > >>You are currently subscribed to ntdev as: unknown lmsubst tag
> >argument: ‘’
> > >>To unsubscribe send a blank email to
> xxxxx@lists.osr.com
> > >
> > >
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
> > >unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as:
> xxxxx@windows.microsoft.com
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: unknown lmsubst
> tag argument: ‘’
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@hollistech.com To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>

I am using tracefmt to view the file. i just run tracefmt logfile.etl.

the ensuing fmtfile.txt only has one line in it and that is ‘TraceEvent’

Manasi

From: “Jose Sua”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Fri, 18 Mar 2005 12:16:37 -0800
>
>What tool are u using to view the trace? What do you get?
>
>
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Friday, March 18, 2005 11:20 AM
>To: Windows System Software Devs Interest List
>Subject: RE: [ntdev] enabling wpp
>
>I had a multiple definition of the flags which was causing all kinds of
>problems.
>
>After I compiled it, I tried to run tracelog to capture messages as, I
>did a tracelog -enumguids to see if the guid is registered and then
>
>tracelog -guid #guidnum -level 4 -flag 31 -start log_driver
>
>After the test is complete, i stopped the tracelog as, tracelog -stop
>log_driver
>
>When I run the etl file obtained, i dont see any traces and I’m
>wondering why is that.
>
>Thanks,
>Manasi
>
> >From: “Jose Sua”
> >Reply-To: “Windows System Software Devs Interest List”
> >
> >To: “Windows System Software Devs Interest List”
> >Subject: RE: [ntdev] enabling wpp
> >Date: Wed, 16 Mar 2005 11:12:08 -0800
> >
> >What was the Problem ?
> >
> >-----Original Message-----
> >From: xxxxx@lists.osr.com
> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> >Sent: Wednesday, March 16, 2005 9:06 AM
> >To: Windows System Software Devs Interest List
> >Subject: RE: [ntdev] enabling wpp
> >
> >Allright! I got all the issues sorted out and now have compiled code.
> >Thanks a lot to all the people on this list who helped out.
> >
> >Manasi
> >
> > >From: “Manasi Deval”
> > >Reply-To: “Windows System Software Devs Interest List”
> > >
> > >To: “Windows System Software Devs Interest List”
> > >
> > >Subject: RE: [ntdev] enabling wpp
> > >Date: Tue, 15 Mar 2005 15:07:12 -0800
> > >
> > >If I do exactly that, such that I print 2 messages on lines 91 and 92
>
> > >as
> > >follows:
> > > TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing…
> >\n”);
> > > MyTraceEvents(“Initializing…\n”);
> > >The code continues to get compilation problems as:
> > >
> > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > >class/struct/union type
> > >interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
> > >class/struct/union t ype
> > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > >class/struct/union type
> > >interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
> > >class/struct/union type
> > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > >class/struct/union type
> > >interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
> > >class/struct/union t ype
> > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > >class/struct/union type
> > >interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
> > >class/struct/union type
> > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > >even
> >
> > >with arg ument-dependent lookup
> > >
> > >Please also help me understand what the WPP_BIT errors mean. I can
> > >see the enumberator in the .tmh file so I’m not sure what else i need
>
> > >to
> >define.
> > >Manasi
> > >
> > >>From: “Jose Sua”
> > >>Reply-To: “Windows System Software Devs Interest List”
> > >>
> > >>To: “Windows System Software Devs Interest List”
> > >>
> > >>Subject: RE: [ntdev] enabling wpp
> > >>Date: Tue, 15 Mar 2005 10:31:23 -0800
> > >>
> > >>In the Macro use Level not TRACE_LEVEL_INFORMATION. This refers to
> > >>an internal WPP control structure not a value.
> > >>Must be:
> > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > >>DBG_NORMAL).Level >= lvl)
> > >>
> > >>RUN_WPP=$(SOURCES)<br>> > >> -km<br>> > >> -dll<br>> > >> -DMacroName<br>> > >>
> > >>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(
> > >>MS
> > >>G,
> > >>…)<br>> > >> -func:TraceEvents(LEVEL,FLAG,MSG…)
> > >>
> > >>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this macro.
> > >>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags =DBG_INIT_1 to
> > >>trcae Level =4 and Flags = 1
> > >>
> > >>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to initialize
> > >>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags = 1
> > >>
> > >>
> > >>Thanks,
> > >>Jose Sua
> > >>ETW Dev Team
> > >>Microsoft Corporation
> > >>
> > >>This posting is provided “AS IS” with no warranties and confers no
> > >>rights.
> > >>-----Original Message-----
> > >>From: xxxxx@lists.osr.com
> > >>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> > >>Sent: Tuesday, March 15, 2005 9:24 AM
> > >>To: Windows System Software Devs Interest List
> > >>Subject: RE: [ntdev] enabling wpp
> > >>
> > >>Thanks for all the help. I think I’m closer but not quite done yet.
> > >>
> > >>When I make the changes, to define the macro in the build file as:
> > >>RUN_WPP=$(SOURCES)<br>> > >> -km<br>> > >> -dll<br>> > >> -DMacroName<br>> > >> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> > >> -func:TraceEvents(LEVEL,FLAG,(MSG…))
> > >>
> > >>I include the .tmh file and define the configuration as:
> > >>#define TRACE_LEVEL_NONE 0 // Tracing is not on
> > >>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or termination
> > >>#define TRACE_LEVEL_ERROR 2 // Severe errors that need
>logging
> > >>#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation
> > >>failure
> > >>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
> > >>cases(e.g.,Entry-Exit)
> > >>
> > >>#define WPP_CONTROL_GUIDS <br>> > >> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
> > >>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> > >> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 = 0x00000001
> >/ <br>> > >> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 = 0x00000010
>/
> ><br>> > >> /
You can have up to 32 defines. If you want more than
> >that,<br>> > >> you have to provide another trace control GUID */<br>> > >> )
> > >>
> > >>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> > >> WPP_LEVEL_LOGGER(flags)
> > >>
> > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > >>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
> > >>
> > >>Then I call the trace message in the code as follows:
> > >> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
> > >>(“Initializing…%s\n”, AdapterName));
> > >>
> > >>interrupt.cpp(91) : error C2143: syntax error : missing ‘)’ before
> > >>‘constant
> > >>interrupt.cpp(91) : error C2059: syntax error : ‘)’
> > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
> > >>identifier not d, even with argument-dependent lookup
> > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’:
> > >>identifier
> >
> > >>not f , even with argument-dependent lookup
> > >>
> > >>If the trace message in the code on lines 88,89 and 90 is as
>follows:
> > >>
> > >> MyTraceEvents(TRACE_LEVEL_INFORMATION, “Initializing…%d\n”,
> > >>Adapter);
> > >> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”, Adapter);
> > >> MyTraceEvents(“Initializing…\n”);
> > >>
> > >>I get the compilation error:
> > >>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not
> > >>found, even with argument-dependent lookup
> > >>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not
> > >>found, even with argument-dependent lookup
> > >>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not
> > >>found, even with argument-dependent lookup
> > >>
> > >>Hope I am getting closer to the solution.
> > >>Manasi
> > >>
> > >> >From: “Jose Sua”
> > >> >Reply-To: “Windows System Software Devs Interest List”
> > >> >
> > >> >To: “Windows System Software Devs Interest List”
> > >> >
> > >> >Subject: RE: [ntdev] enabling wpp
> > >> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> > >> >
> > >> >DoTraceMessage is a macro, is the default trace macro which is
> > >> >recognized by the WPP preprocesor. You can also define your own
> > >> >and tell the preprocessor the name of it in your sources file with
>
> > >> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
> > >> >statement and let WPP scan it. In your example you are not
> > >> >defining
> > >>“TRACE”
> > >> >therefore the preprocessor ignores it and only expands the found
> > >> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> > >> >
> > >> >The general format of a valid trace message function is as
>follows:
> > >> >
> > >> >FunctionName(Conditions…,“Message”,MessageVariables…);
> > >> >
> > >> >This is expanded into:
> > >> >
> > >> >If (Conditions enabled) {
> > >> >
> > >> > Add the flag value, message, and message formatting to the
> > >> >PDB symbol file;
> > >> >
> > >> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
> > >> >
> > >> >}
> > >> >
> > >> >When you do a macro for tracing, you must provide:
> > >> >How to check if tracing is enabled, and the logger handle for the
> > >> >trace
> > >>
> > >> >function.
> > >> >
> > >> >So if you define the trace macro as:
> > >> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> > >> >You also need to define :
> > >> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags) WPP_LEVEL_LOGGER(flags)
> > >> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
> > >> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ## flags).Level
> > >> >>=
> >
> > >> >lvl)
> > >> >
> > >> >A trace statemet will look like:
> > >> > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
> > >>%d”,
> > >> >“World” , i);
> > >> >
> > >> >
> > >> >Is this what you want to do?
> > >> >
> > >> >You can further simplify by defining more macros assume that you
> > >> >define
> > >>
> > >> >a flag= Unusual, and want a macro that traces for
> > >> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> > >> >
> > >> >Method 1: define this in your code and have tracewpp scan the file
>
> > >> >with
> > >>
> > >> >the -scan:filename option In this case you can define additional
> > >> >configuration for the trace macro such as prefix and suffix,
> > >> >assumes
> >
> > >> >that you have a var named hr.
> > >> >// begin_wpp config
> > >> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
> > >> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
> > >> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> > >> >
> > >> >Method 2: in the source file hace
> > >> >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> > >> >)
> > >> >
> > >> >In both cases the trace macro in your code will look like:
> > >> >
> > >> >MYTRACE(“Init Adapter %s”, AdapterName);
> > >> >
> > >> >Thanks,
> > >> >Jose Sua
> > >> >Microsoft Corporation
> > >> >
> > >> >This posting is provided “AS IS” with no warranties and confers no
>
> > >> >rights.
> > >> >-----Original Message-----
> > >> >From: xxxxx@lists.osr.com
> > >> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > >> >Deval
> > >> >Sent: Tuesday, March 08, 2005 6:00 PM
> > >> >To: Windows System Software Devs Interest List
> > >> >Subject: RE: [ntdev] enabling wpp
> > >> >
> > >> >Yes, I am.
> > >> >
> > >> >I also tried TraceEvents and that gives me the same problem.
> > >> >
> > >> >Manasi
> > >> >
> > >> > >From: “Doron Holan”
> > >> > >Reply-To: “Windows System Software Devs Interest List”
> > >> > >
> > >> > >To: “Windows System Software Devs Interest List”
> > >> > >
> > >> > >Subject: RE: [ntdev] enabling wpp
> > >> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> > >> > >
> > >> > >Are you wrapping the #include of the .tmh file in an extern “C”?
> > >> > >
> > >> > >Ie
> > >> > >
> > >> > >extern “C” {
> > >> > >#include “Foo.tmh”
> > >> > >}
> > >> > >
> > >> > >For foo.cpp?
> > >> > >
> > >> > >d
> > >> > >
> > >> > >-----Original Message-----
> > >> > >From: xxxxx@lists.osr.com
> > >> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > >> > >Deval
> > >> > >Sent: Tuesday, March 08, 2005 4:45 PM
> > >> > >To: Windows System Software Devs Interest List
> > >> > >Subject: [ntdev] enabling wpp
> > >> > >
> > >> > >Hi all,
> > >> > > I am trying to enable WPP in my driver. In my free
> > >> > >version trace
> > >> >
> > >> > >macros to print out the DoTraceMessage string.
> > >> > > #define TRACE(A,LVL,S)
> > >> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
> > >> > >LVL, S); where is is the data string. I also added a bunch of
> > >> > >debug levels and functions for using here.
> > >> > >
> > >> > >In the driver entry, I added
> > >> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
> > >> > >similarly in the shutdown function I stop the tracing.
> > >> > >
> > >> > >In the makefile, i added :
> > >> > >
> > >> > >RUN_WPP=$(SOURCES)<br>> > >> > > -km<br>> > >> > > -dll<br>> > >> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> > >> > >
> > >> > >In each of my .cpp files I include the corresponding .tmh file.
> > >> > >
> > >> > >The trace message in the code looks like:
> > >> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> > >> > >
> > >> > >When I build all this, I get error # 2065,
> > >> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> > >> > >: undeclared identifier.
> > >> > >
> > >> > >I am at a loss as to what identifier it is looking for and where
>
> > >> > >should
> > >> >
> > >> > >i define it.
> > >> > >
> > >> > >Thanks,
> > >> > >Manasi
> > >> > >
> > >> > >
> > >> > >
> > >> > >—
> > >> > >Questions? First check the Kernel Driver FAQ at
> > >> > >http://www.osronline.com/article.cfm?id=256
> > >> > >
> > >> > >You are currently subscribed to ntdev as:
> > >> > >xxxxx@windows.microsoft.com To unsubscribe send a blank email
> > >> > >to xxxxx@lists.osr.com
> > >> > >
> > >> > >—
> > >> > >Questions? First check the Kernel Driver FAQ at
> > >> > >http://www.osronline.com/article.cfm?id=256
> > >> > >
> > >> > >You are currently subscribed to ntdev as: unknown lmsubst tag
> > >>argument:
> > >> >’‘
> > >> > >To unsubscribe send a blank email to
> > >> > >xxxxx@lists.osr.com
> > >> >
> > >> >
> > >> >
> > >> >—
> > >> >Questions? First check the Kernel Driver FAQ at
> > >> >http://www.osronline.com/article.cfm?id=256
> > >> >
> > >> >You are currently subscribed to ntdev as: xxxxx@microsoft.com To
>
> > >> >unsubscribe send a blank email to xxxxx@lists.osr.com
> > >> >
> > >> >—
> > >> >Questions? First check the Kernel Driver FAQ at
> > >> >http://www.osronline.com/article.cfm?id=256
> > >> >
> > >> >You are currently subscribed to ntdev as: unknown lmsubst tag
> >argument:
> > >>’‘
> > >> >To unsubscribe send a blank email to
> > >> >xxxxx@lists.osr.com
> > >>
> > >>
> > >>
> > >>—
> > >>Questions? First check the Kernel Driver FAQ at
> > >>http://www.osronline.com/article.cfm?id=256
> > >>
> > >>You are currently subscribed to ntdev as: xxxxx@microsoft.com To
> > >>unsubscribe send a blank email to xxxxx@lists.osr.com
> > >>
> > >>—
> > >>Questions? First check the Kernel Driver FAQ at
> > >>http://www.osronline.com/article.cfm?id=256
> > >>
> > >>You are currently subscribed to ntdev as: unknown lmsubst tag
> >argument: ‘’
> > >>To unsubscribe send a blank email to
> > >>xxxxx@lists.osr.com
> > >
> > >
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
> > >unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
>
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: unknown lmsubst tag argument:
>’'
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@microsoft.com To
>unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
>To unsubscribe send a blank email to xxxxx@lists.osr.com

Yes, it looks a lot easier to use but for some reason it does not like the
pdb file i input at startup. Therefore when i do file->create new log
session->add provider, and try to input my file driver.pdb, it tells me
cannot find pdb file. I built my driver as a free driver using ndis 5.1.

Do let me know if there is an easy solution to this.

Manasi

From: “Mark Roddy”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Fri, 18 Mar 2005 15:27:44 -0500
>
>Traceview is a bit easier to use. It is in the ddk tools.
>
>=====================
>Mark Roddy
>Windows .NET/XP/2000 Consulting
>Hollis Technology Solutions 603-321-1032
>www.hollistech.com
>
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> > Sent: Friday, March 18, 2005 2:20 PM
> > To: Windows System Software Devs Interest List
> > Subject: RE: [ntdev] enabling wpp
> >
> > I had a multiple definition of the flags which was causing
> > all kinds of problems.
> >
> > After I compiled it, I tried to run tracelog to capture
> > messages as, I did a tracelog -enumguids to see if the guid
> > is registered and then
> >
> > tracelog -guid #guidnum -level 4 -flag 31 -start log_driver
> >
> > After the test is complete, i stopped the tracelog as,
> > tracelog -stop log_driver
> >
> > When I run the etl file obtained, i dont see any traces and
> > I’m wondering why is that.
> >
> > Thanks,
> > Manasi
> >
> > >From: “Jose Sua”
> > >Reply-To: “Windows System Software Devs Interest List”
> > >
> > >To: “Windows System Software Devs Interest List”
> >
> > >Subject: RE: [ntdev] enabling wpp
> > >Date: Wed, 16 Mar 2005 11:12:08 -0800
> > >
> > >What was the Problem ?
> > >
> > >-----Original Message-----
> > >From: xxxxx@lists.osr.com
> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> > >Sent: Wednesday, March 16, 2005 9:06 AM
> > >To: Windows System Software Devs Interest List
> > >Subject: RE: [ntdev] enabling wpp
> > >
> > >Allright! I got all the issues sorted out and now have compiled code.
> > >Thanks a lot to all the people on this list who helped out.
> > >
> > >Manasi
> > >
> > > >From: “Manasi Deval”
> > > >Reply-To: “Windows System Software Devs Interest List”
> > > >
> > > >To: “Windows System Software Devs Interest List”
> > > >
> > > >Subject: RE: [ntdev] enabling wpp
> > > >Date: Tue, 15 Mar 2005 15:07:12 -0800
> > > >
> > > >If I do exactly that, such that I print 2 messages on
> > lines 91 and 92
> > > >as
> > > >follows:
> > > > TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing…
> > >\n”);
> > > > MyTraceEvents(“Initializing…\n”);
> > > >The code continues to get compilation problems as:
> > > >
> > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
> > > >class/struct/union t ype
> > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
> > > >class/struct/union t ype
> > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >
> > > >Please also help me understand what the WPP_BIT errors mean. I can
> > > >see the enumberator in the .tmh file so I’m not sure what
> > else i need
> > > >to
> > >define.
> > > >Manasi
> > > >
> > > >>From: “Jose Sua”
> > > >>Reply-To: “Windows System Software Devs Interest List”
> > > >>
> > > >>To: “Windows System Software Devs Interest List”
> > > >>
> > > >>Subject: RE: [ntdev] enabling wpp
> > > >>Date: Tue, 15 Mar 2005 10:31:23 -0800
> > > >>
> > > >>In the Macro use Level not TRACE_LEVEL_INFORMATION. This
> > refers to
> > > >>an internal WPP control structure not a value.
> > > >>Must be:
> > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > >>DBG_NORMAL).Level >= lvl)
> > > >>
> > > >>RUN_WPP=$(SOURCES)<br>> > > >> -km<br>> > > >> -dll<br>> > > >> -DMacroName<br>> > > >>
> > >
> > >>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(
> > > >>MS
> > > >>G,
> > > >>…)<br>> > > >> -func:TraceEvents(LEVEL,FLAG,MSG…)
> > > >>
> > > >>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this macro.
> > > >>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags
> > =DBG_INIT_1 to
> > > >>trcae Level =4 and Flags = 1
> > > >>
> > > >>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to initialize
> > > >>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags = 1
> > > >>
> > > >>
> > > >>Thanks,
> > > >>Jose Sua
> > > >>ETW Dev Team
> > > >>Microsoft Corporation
> > > >>
> > > >>This posting is provided “AS IS” with no warranties and
> > confers no
> > > >>rights.
> > > >>-----Original Message-----
> > > >>From: xxxxx@lists.osr.com
> > > >>[mailto:xxxxx@lists.osr.com] On Behalf Of
> > Manasi Deval
> > > >>Sent: Tuesday, March 15, 2005 9:24 AM
> > > >>To: Windows System Software Devs Interest List
> > > >>Subject: RE: [ntdev] enabling wpp
> > > >>
> > > >>Thanks for all the help. I think I’m closer but not quite
> > done yet.
> > > >>
> > > >>When I make the changes, to define the macro in the build file as:
> > > >>RUN_WPP=$(SOURCES)<br>> > > >> -km<br>> > > >> -dll<br>> > > >> -DMacroName<br>> > > >> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> > > >> -func:TraceEvents(LEVEL,FLAG,(MSG…))
> > > >>
> > > >>I include the .tmh file and define the configuration as:
> > > >>#define TRACE_LEVEL_NONE 0 // Tracing is not on
> > > >>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or
> > termination
> > > >>#define TRACE_LEVEL_ERROR 2 // Severe errors that
> > need logging
> > > >>#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation
> > > >>failure
> > > >>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
> > > >>cases(e.g.,Entry-Exit)
> > > >>
> > > >>#define WPP_CONTROL_GUIDS <br>> > > >> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
> > > >>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> > > >> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 =
> > 0x00000001
> > >/ <br>> > > >> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 =
> > 0x00000010 /
> > ><br>> > > >> /
You can have up to 32 defines. If you want more than
> > >that,<br>> > > >> you have to provide another trace control GUID */<br>> > > >> )
> > > >>
> > > >>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> > > >> WPP_LEVEL_LOGGER(flags)
> > > >>
> > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > >>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
> > > >>
> > > >>Then I call the trace message in the code as follows:
> > > >> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
> > > >>(“Initializing…%s\n”, AdapterName));
> > > >>
> > > >>interrupt.cpp(91) : error C2143: syntax error : missing
> > ‘)’ before
> > > >>‘constant
> > > >>interrupt.cpp(91) : error C2059: syntax error : ‘)’
> > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
> > > >>identifier not d, even with argument-dependent lookup
> > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’:
> > > >>identifier
> > >
> > > >>not f , even with argument-dependent lookup
> > > >>
> > > >>If the trace message in the code on lines 88,89 and 90 is
> > as follows:
> > > >>
> > > >> MyTraceEvents(TRACE_LEVEL_INFORMATION, “Initializing…%d\n”,
> > > >>Adapter);
> > > >> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”, Adapter);
> > > >> MyTraceEvents(“Initializing…\n”);
> > > >>
> > > >>I get the compilation error:
> > > >>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not
> > > >>found, even with argument-dependent lookup
> > > >>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not
> > > >>found, even with argument-dependent lookup
> > > >>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not
> > > >>found, even with argument-dependent lookup
> > > >>
> > > >>Hope I am getting closer to the solution.
> > > >>Manasi
> > > >>
> > > >> >From: “Jose Sua”
> > > >> >Reply-To: “Windows System Software Devs Interest List”
> > > >> >
> > > >> >To: “Windows System Software Devs Interest List”
> > > >> >
> > > >> >Subject: RE: [ntdev] enabling wpp
> > > >> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> > > >> >
> > > >> >DoTraceMessage is a macro, is the default trace macro which is
> > > >> >recognized by the WPP preprocesor. You can also define your own
> > > >> >and tell the preprocessor the name of it in your
> > sources file with
> > > >> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
> > > >> >statement and let WPP scan it. In your example you are not
> > > >> >defining
> > > >>“TRACE”
> > > >> >therefore the preprocessor ignores it and only expands
> > the found
> > > >> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> > > >> >
> > > >> >The general format of a valid trace message function is
> > as follows:
> > > >> >
> > > >> >FunctionName(Conditions…,“Message”,MessageVariables…);
> > > >> >
> > > >> >This is expanded into:
> > > >> >
> > > >> >If (Conditions enabled) {
> > > >> >
> > > >> > Add the flag value, message, and message formatting to the
> > > >> >PDB symbol file;
> > > >> >
> > > >> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
> > > >> >
> > > >> >}
> > > >> >
> > > >> >When you do a macro for tracing, you must provide:
> > > >> >How to check if tracing is enabled, and the logger
> > handle for the
> > > >> >trace
> > > >>
> > > >> >function.
> > > >> >
> > > >> >So if you define the trace macro as:
> > > >> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> > > >> >You also need to define :
> > > >> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags)
> > WPP_LEVEL_LOGGER(flags)
> > > >> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
> > > >> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ##
> > flags).Level
> > > >> >>=
> > >
> > > >> >lvl)
> > > >> >
> > > >> >A trace statemet will look like:
> > > >> >
> > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
> > > >>%d”,
> > > >> >“World” , i);
> > > >> >
> > > >> >
> > > >> >Is this what you want to do?
> > > >> >
> > > >> >You can further simplify by defining more macros assume
> > that you
> > > >> >define
> > > >>
> > > >> >a flag= Unusual, and want a macro that traces for
> > > >> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> > > >> >
> > > >> >Method 1: define this in your code and have tracewpp
> > scan the file
> > > >> >with
> > > >>
> > > >> >the -scan:filename option In this case you can define
> > additional
> > > >> >configuration for the trace macro such as prefix and suffix,
> > > >> >assumes
> > >
> > > >> >that you have a var named hr.
> > > >> >// begin_wpp config
> > > >> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
> > > >> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
> > > >> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> > > >> >
> > > >> >Method 2: in the source file hace
> > > >>
> > >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> > > >> >)
> > > >> >
> > > >> >In both cases the trace macro in your code will look like:
> > > >> >
> > > >> >MYTRACE(“Init Adapter %s”, AdapterName);
> > > >> >
> > > >> >Thanks,
> > > >> >Jose Sua
> > > >> >Microsoft Corporation
> > > >> >
> > > >> >This posting is provided “AS IS” with no warranties and
> > confers no
> > > >> >rights.
> > > >> >-----Original Message-----
> > > >> >From: xxxxx@lists.osr.com
> > > >> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > > >> >Deval
> > > >> >Sent: Tuesday, March 08, 2005 6:00 PM
> > > >> >To: Windows System Software Devs Interest List
> > > >> >Subject: RE: [ntdev] enabling wpp
> > > >> >
> > > >> >Yes, I am.
> > > >> >
> > > >> >I also tried TraceEvents and that gives me the same problem.
> > > >> >
> > > >> >Manasi
> > > >> >
> > > >> > >From: “Doron Holan”
> > > >> > >Reply-To: “Windows System Software Devs Interest List”
> > > >> > >
> > > >> > >To: “Windows System Software Devs Interest List”
> > > >> > >
> > > >> > >Subject: RE: [ntdev] enabling wpp
> > > >> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> > > >> > >
> > > >> > >Are you wrapping the #include of the .tmh file in an
> > extern “C”?
> > > >> > >
> > > >> > >Ie
> > > >> > >
> > > >> > >extern “C” {
> > > >> > >#include “Foo.tmh”
> > > >> > >}
> > > >> > >
> > > >> > >For foo.cpp?
> > > >> > >
> > > >> > >d
> > > >> > >
> > > >> > >-----Original Message-----
> > > >> > >From: xxxxx@lists.osr.com
> > > >> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > > >> > >Deval
> > > >> > >Sent: Tuesday, March 08, 2005 4:45 PM
> > > >> > >To: Windows System Software Devs Interest List
> > > >> > >Subject: [ntdev] enabling wpp
> > > >> > >
> > > >> > >Hi all,
> > > >> > > I am trying to enable WPP in my driver. In my free
> > > >> > >version trace
> > > >> >
> > > >> > >macros to print out the DoTraceMessage string.
> > > >> > > #define TRACE(A,LVL,S)
> > > >> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
> > > >> > >LVL, S); where is is the data string. I also added a bunch of
> > > >> > >debug levels and functions for using here.
> > > >> > >
> > > >> > >In the driver entry, I added
> > > >> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
> > > >> > >similarly in the shutdown function I stop the tracing.
> > > >> > >
> > > >> > >In the makefile, i added :
> > > >> > >
> > > >> > >RUN_WPP=$(SOURCES)<br>> > > >> > > -km<br>> > > >> > > -dll<br>> > > >> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> > > >> > >
> > > >> > >In each of my .cpp files I include the corresponding
> > .tmh file.
> > > >> > >
> > > >> > >The trace message in the code looks like:
> > > >> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> > > >> > >
> > > >> > >When I build all this, I get error # 2065,
> > > >> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> > > >> > >: undeclared identifier.
> > > >> > >
> > > >> > >I am at a loss as to what identifier it is looking
> > for and where
> > > >> > >should
> > > >> >
> > > >> > >i define it.
> > > >> > >
> > > >> > >Thanks,
> > > >> > >Manasi
> > > >> > >
> > > >> > >
> > > >> > >
> > > >> > >—
> > > >> > >Questions? First check the Kernel Driver FAQ at
> > > >> > >http://www.osronline.com/article.cfm?id=256
> > > >> > >
> > > >> > >You are currently subscribed to ntdev as:
> > > >> > >xxxxx@windows.microsoft.com To unsubscribe send a
> > blank email
> > > >> > >to xxxxx@lists.osr.com
> > > >> > >
> > > >> > >—
> > > >> > >Questions? First check the Kernel Driver FAQ at
> > > >> > >http://www.osronline.com/article.cfm?id=256
> > > >> > >
> > > >> > >You are currently subscribed to ntdev as: unknown lmsubst tag
> > > >>argument:
> > > >> >’‘
> > > >> > >To unsubscribe send a blank email to
> > > >> > >xxxxx@lists.osr.com
> > > >> >
> > > >> >
> > > >> >
> > > >> >—
> > > >> >Questions? First check the Kernel Driver FAQ at
> > > >> >http://www.osronline.com/article.cfm?id=256
> > > >> >
> > > >> >You are currently subscribed to ntdev as:
> > xxxxx@microsoft.com To
> > > >> >unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> > > >> >
> > > >> >—
> > > >> >Questions? First check the Kernel Driver FAQ at
> > > >> >http://www.osronline.com/article.cfm?id=256
> > > >> >
> > > >> >You are currently subscribed to ntdev as: unknown lmsubst tag
> > >argument:
> > > >>’'
> > > >> >To unsubscribe send a blank email to
> > > >> >xxxxx@lists.osr.com
> > > >>
> > > >>
> > > >>
> > > >>—
> > > >>Questions? First check the Kernel Driver FAQ at
> > > >>http://www.osronline.com/article.cfm?id=256
> > > >>
> > > >>You are currently subscribed to ntdev as:
> > xxxxx@microsoft.com To
> > > >>unsubscribe send a blank email to xxxxx@lists.osr.com
> > > >>
> > > >>—
> > > >>Questions? First check the Kernel Driver FAQ at
> > > >>http://www.osronline.com/article.cfm?id=256
> > > >>
> > > >>You are currently subscribed to ntdev as: unknown lmsubst tag
> > >argument: ‘’
> > > >>To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> > > >
> > > >
> > > >
> > > >—
> > > >Questions? First check the Kernel Driver FAQ at
> > > >http://www.osronline.com/article.cfm?id=256
> > > >
> > > >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
> > > >unsubscribe send a blank email to xxxxx@lists.osr.com
> > >
> > >
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as:
> > xxxxx@windows.microsoft.com
> > >To unsubscribe send a blank email to xxxxx@lists.osr.com
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as: unknown lmsubst
> > tag argument: ‘’
> > >To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as:
> > xxxxx@hollistech.com To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
>
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com

This could be because it can not find the control GUID information, in
the PDB.

Are you sure you are using WPP_CONTROL_GUIDS to define your control GUID
?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
Sent: Friday, March 18, 2005 3:38 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] enabling wpp

Yes, it looks a lot easier to use but for some reason it does not like
the pdb file i input at startup. Therefore when i do file->create new
log
session->add provider, and try to input my file driver.pdb, it tells me
cannot find pdb file. I built my driver as a free driver using ndis 5.1.

Do let me know if there is an easy solution to this.

Manasi

From: “Mark Roddy”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Fri, 18 Mar 2005 15:27:44 -0500
>
>Traceview is a bit easier to use. It is in the ddk tools.
>
>=====================
>Mark Roddy
>Windows .NET/XP/2000 Consulting
>Hollis Technology Solutions 603-321-1032
>www.hollistech.com
>
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> > Sent: Friday, March 18, 2005 2:20 PM
> > To: Windows System Software Devs Interest List
> > Subject: RE: [ntdev] enabling wpp
> >
> > I had a multiple definition of the flags which was causing
> > all kinds of problems.
> >
> > After I compiled it, I tried to run tracelog to capture
> > messages as, I did a tracelog -enumguids to see if the guid
> > is registered and then
> >
> > tracelog -guid #guidnum -level 4 -flag 31 -start log_driver
> >
> > After the test is complete, i stopped the tracelog as,
> > tracelog -stop log_driver
> >
> > When I run the etl file obtained, i dont see any traces and
> > I’m wondering why is that.
> >
> > Thanks,
> > Manasi
> >
> > >From: “Jose Sua”
> > >Reply-To: “Windows System Software Devs Interest List”
> > >
> > >To: “Windows System Software Devs Interest List”
> >
> > >Subject: RE: [ntdev] enabling wpp
> > >Date: Wed, 16 Mar 2005 11:12:08 -0800
> > >
> > >What was the Problem ?
> > >
> > >-----Original Message-----
> > >From: xxxxx@lists.osr.com
> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
Deval
> > >Sent: Wednesday, March 16, 2005 9:06 AM
> > >To: Windows System Software Devs Interest List
> > >Subject: RE: [ntdev] enabling wpp
> > >
> > >Allright! I got all the issues sorted out and now have compiled
code.
> > >Thanks a lot to all the people on this list who helped out.
> > >
> > >Manasi
> > >
> > > >From: “Manasi Deval”
> > > >Reply-To: “Windows System Software Devs Interest List”
> > > >
> > > >To: “Windows System Software Devs Interest List”
> > > >
> > > >Subject: RE: [ntdev] enabling wpp
> > > >Date: Tue, 15 Mar 2005 15:07:12 -0800
> > > >
> > > >If I do exactly that, such that I print 2 messages on
> > lines 91 and 92
> > > >as
> > > >follows:
> > > > TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing…
> > >\n”);
> > > > MyTraceEvents(“Initializing…\n”);
> > > >The code continues to get compilation problems as:
> > > >
> > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
> > > >class/struct/union t ype
> > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
> > > >class/struct/union t ype
> > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >
> > > >Please also help me understand what the WPP_BIT errors mean. I
can
> > > >see the enumberator in the .tmh file so I’m not sure what
> > else i need
> > > >to
> > >define.
> > > >Manasi
> > > >
> > > >>From: “Jose Sua”
> > > >>Reply-To: “Windows System Software Devs Interest List”
> > > >>
> > > >>To: “Windows System Software Devs Interest List”
> > > >>
> > > >>Subject: RE: [ntdev] enabling wpp
> > > >>Date: Tue, 15 Mar 2005 10:31:23 -0800
> > > >>
> > > >>In the Macro use Level not TRACE_LEVEL_INFORMATION. This
> > refers to
> > > >>an internal WPP control structure not a value.
> > > >>Must be:
> > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > >>DBG_NORMAL).Level >= lvl)
> > > >>
> > > >>RUN_WPP=$(SOURCES)<br>> > > >> -km<br>> > > >> -dll<br>> > > >> -DMacroName<br>> > > >>
> > >
> >
>>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(
> > > >>MS
> > > >>G,
> > > >>…)<br>> > > >> -func:TraceEvents(LEVEL,FLAG,MSG…)
> > > >>
> > > >>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this
macro.
> > > >>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags
> > =DBG_INIT_1 to
> > > >>trcae Level =4 and Flags = 1
> > > >>
> > > >>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to
initialize
> > > >>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags = 1
> > > >>
> > > >>
> > > >>Thanks,
> > > >>Jose Sua
> > > >>ETW Dev Team
> > > >>Microsoft Corporation
> > > >>
> > > >>This posting is provided “AS IS” with no warranties and
> > confers no
> > > >>rights.
> > > >>-----Original Message-----
> > > >>From: xxxxx@lists.osr.com
> > > >>[mailto:xxxxx@lists.osr.com] On Behalf Of
> > Manasi Deval
> > > >>Sent: Tuesday, March 15, 2005 9:24 AM
> > > >>To: Windows System Software Devs Interest List
> > > >>Subject: RE: [ntdev] enabling wpp
> > > >>
> > > >>Thanks for all the help. I think I’m closer but not quite
> > done yet.
> > > >>
> > > >>When I make the changes, to define the macro in the build file
as:
> > > >>RUN_WPP=$(SOURCES)<br>> > > >> -km<br>> > > >> -dll<br>> > > >> -DMacroName<br>> > > >> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> > > >> -func:TraceEvents(LEVEL,FLAG,(MSG…))
> > > >>
> > > >>I include the .tmh file and define the configuration as:
> > > >>#define TRACE_LEVEL_NONE 0 // Tracing is not on
> > > >>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or
> > termination
> > > >>#define TRACE_LEVEL_ERROR 2 // Severe errors that
> > need logging
> > > >>#define TRACE_LEVEL_WARNING 3 // Warnings such as
allocation
> > > >>failure
> > > >>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
> > > >>cases(e.g.,Entry-Exit)
> > > >>
> > > >>#define WPP_CONTROL_GUIDS <br>> > > >> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
> > > >>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> > > >> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 =
> > 0x00000001
> > >/ <br>> > > >> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 =
> > 0x00000010 /
> > ><br>> > > >> /
You can have up to 32 defines. If you want more than
> > >that,<br>> > > >> you have to provide another trace control GUID */<br>> > > >> )
> > > >>
> > > >>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> > > >> WPP_LEVEL_LOGGER(flags)
> > > >>
> > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > >>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
> > > >>
> > > >>Then I call the trace message in the code as follows:
> > > >> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
> > > >>(“Initializing…%s\n”, AdapterName));
> > > >>
> > > >>interrupt.cpp(91) : error C2143: syntax error : missing
> > ‘)’ before
> > > >>‘constant
> > > >>interrupt.cpp(91) : error C2059: syntax error : ‘)’
> > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
> > > >>identifier not d, even with argument-dependent lookup
> > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’:
> > > >>identifier
> > >
> > > >>not f , even with argument-dependent lookup
> > > >>
> > > >>If the trace message in the code on lines 88,89 and 90 is
> > as follows:
> > > >>
> > > >> MyTraceEvents(TRACE_LEVEL_INFORMATION,
“Initializing…%d\n”,
> > > >>Adapter);
> > > >> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”,
Adapter);
> > > >> MyTraceEvents(“Initializing…\n”);
> > > >>
> > > >>I get the compilation error:
> > > >>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not
> > > >>found, even with argument-dependent lookup
> > > >>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not
> > > >>found, even with argument-dependent lookup
> > > >>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not
> > > >>found, even with argument-dependent lookup
> > > >>
> > > >>Hope I am getting closer to the solution.
> > > >>Manasi
> > > >>
> > > >> >From: “Jose Sua”
> > > >> >Reply-To: “Windows System Software Devs Interest List”
> > > >> >
> > > >> >To: “Windows System Software Devs Interest List”
> > > >> >
> > > >> >Subject: RE: [ntdev] enabling wpp
> > > >> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> > > >> >
> > > >> >DoTraceMessage is a macro, is the default trace macro which is
> > > >> >recognized by the WPP preprocesor. You can also define your
own
> > > >> >and tell the preprocessor the name of it in your
> > sources file with
> > > >> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
> > > >> >statement and let WPP scan it. In your example you are not
> > > >> >defining
> > > >>“TRACE”
> > > >> >therefore the preprocessor ignores it and only expands
> > the found
> > > >> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> > > >> >
> > > >> >The general format of a valid trace message function is
> > as follows:
> > > >> >
> > > >> >FunctionName(Conditions…,“Message”,MessageVariables…);
> > > >> >
> > > >> >This is expanded into:
> > > >> >
> > > >> >If (Conditions enabled) {
> > > >> >
> > > >> > Add the flag value, message, and message formatting to
the
> > > >> >PDB symbol file;
> > > >> >
> > > >> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
> > > >> >
> > > >> >}
> > > >> >
> > > >> >When you do a macro for tracing, you must provide:
> > > >> >How to check if tracing is enabled, and the logger
> > handle for the
> > > >> >trace
> > > >>
> > > >> >function.
> > > >> >
> > > >> >So if you define the trace macro as:
> > > >> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> > > >> >You also need to define :
> > > >> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags)
> > WPP_LEVEL_LOGGER(flags)
> > > >> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
> > > >> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ##
> > flags).Level
> > > >> >>=
> > >
> > > >> >lvl)
> > > >> >
> > > >> >A trace statemet will look like:
> > > >> >
> > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
> > > >>%d”,
> > > >> >“World” , i);
> > > >> >
> > > >> >
> > > >> >Is this what you want to do?
> > > >> >
> > > >> >You can further simplify by defining more macros assume
> > that you
> > > >> >define
> > > >>
> > > >> >a flag= Unusual, and want a macro that traces for
> > > >> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> > > >> >
> > > >> >Method 1: define this in your code and have tracewpp
> > scan the file
> > > >> >with
> > > >>
> > > >> >the -scan:filename option In this case you can define
> > additional
> > > >> >configuration for the trace macro such as prefix and suffix,
> > > >> >assumes
> > >
> > > >> >that you have a var named hr.
> > > >> >// begin_wpp config
> > > >> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
> > > >> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
> > > >> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> > > >> >
> > > >> >Method 2: in the source file hace
> > > >>
> > >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> > > >> >)
> > > >> >
> > > >> >In both cases the trace macro in your code will look like:
> > > >> >
> > > >> >MYTRACE(“Init Adapter %s”, AdapterName);
> > > >> >
> > > >> >Thanks,
> > > >> >Jose Sua
> > > >> >Microsoft Corporation
> > > >> >
> > > >> >This posting is provided “AS IS” with no warranties and
> > confers no
> > > >> >rights.
> > > >> >-----Original Message-----
> > > >> >From: xxxxx@lists.osr.com
> > > >> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > > >> >Deval
> > > >> >Sent: Tuesday, March 08, 2005 6:00 PM
> > > >> >To: Windows System Software Devs Interest List
> > > >> >Subject: RE: [ntdev] enabling wpp
> > > >> >
> > > >> >Yes, I am.
> > > >> >
> > > >> >I also tried TraceEvents and that gives me the same problem.
> > > >> >
> > > >> >Manasi
> > > >> >
> > > >> > >From: “Doron Holan”
> > > >> > >Reply-To: “Windows System Software Devs Interest List”
> > > >> > >
> > > >> > >To: “Windows System Software Devs Interest List”
> > > >> > >
> > > >> > >Subject: RE: [ntdev] enabling wpp
> > > >> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> > > >> > >
> > > >> > >Are you wrapping the #include of the .tmh file in an
> > extern “C”?
> > > >> > >
> > > >> > >Ie
> > > >> > >
> > > >> > >extern “C” {
> > > >> > >#include “Foo.tmh”
> > > >> > >}
> > > >> > >
> > > >> > >For foo.cpp?
> > > >> > >
> > > >> > >d
> > > >> > >
> > > >> > >-----Original Message-----
> > > >> > >From: xxxxx@lists.osr.com
> > > >> > >[mailto:xxxxx@lists.osr.com] On Behalf Of
Manasi
> > > >> > >Deval
> > > >> > >Sent: Tuesday, March 08, 2005 4:45 PM
> > > >> > >To: Windows System Software Devs Interest List
> > > >> > >Subject: [ntdev] enabling wpp
> > > >> > >
> > > >> > >Hi all,
> > > >> > > I am trying to enable WPP in my driver. In my free
> > > >> > >version trace
> > > >> >
> > > >> > >macros to print out the DoTraceMessage string.
> > > >> > > #define TRACE(A,LVL,S)
> > > >> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
> > > >> > >LVL, S); where is is the data string. I also added a bunch
of
> > > >> > >debug levels and functions for using here.
> > > >> > >
> > > >> > >In the driver entry, I added
> > > >> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
> > > >> > >similarly in the shutdown function I stop the tracing.
> > > >> > >
> > > >> > >In the makefile, i added :
> > > >> > >
> > > >> > >RUN_WPP=$(SOURCES)<br>> > > >> > > -km<br>> > > >> > > -dll<br>> > > >> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> > > >> > >
> > > >> > >In each of my .cpp files I include the corresponding
> > .tmh file.
> > > >> > >
> > > >> > >The trace message in the code looks like:
> > > >> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> > > >> > >
> > > >> > >When I build all this, I get error # 2065,
> > > >> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> > > >> > >: undeclared identifier.
> > > >> > >
> > > >> > >I am at a loss as to what identifier it is looking
> > for and where
> > > >> > >should
> > > >> >
> > > >> > >i define it.
> > > >> > >
> > > >> > >Thanks,
> > > >> > >Manasi
> > > >> > >
> > > >> > >
> > > >> > >
> > > >> > >—
> > > >> > >Questions? First check the Kernel Driver FAQ at
> > > >> > >http://www.osronline.com/article.cfm?id=256
> > > >> > >
> > > >> > >You are currently subscribed to ntdev as:
> > > >> > >xxxxx@windows.microsoft.com To unsubscribe send a
> > blank email
> > > >> > >to xxxxx@lists.osr.com
> > > >> > >
> > > >> > >—
> > > >> > >Questions? First check the Kernel Driver FAQ at
> > > >> > >http://www.osronline.com/article.cfm?id=256
> > > >> > >
> > > >> > >You are currently subscribed to ntdev as: unknown lmsubst
tag
> > > >>argument:
> > > >> >’‘
> > > >> > >To unsubscribe send a blank email to
> > > >> > >xxxxx@lists.osr.com
> > > >> >
> > > >> >
> > > >> >
> > > >> >—
> > > >> >Questions? First check the Kernel Driver FAQ at
> > > >> >http://www.osronline.com/article.cfm?id=256
> > > >> >
> > > >> >You are currently subscribed to ntdev as:
> > xxxxx@microsoft.com To
> > > >> >unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> > > >> >
> > > >> >—
> > > >> >Questions? First check the Kernel Driver FAQ at
> > > >> >http://www.osronline.com/article.cfm?id=256
> > > >> >
> > > >> >You are currently subscribed to ntdev as: unknown lmsubst tag
> > >argument:
> > > >>’'
> > > >> >To unsubscribe send a blank email to
> > > >> >xxxxx@lists.osr.com
> > > >>
> > > >>
> > > >>
> > > >>—
> > > >>Questions? First check the Kernel Driver FAQ at
> > > >>http://www.osronline.com/article.cfm?id=256
> > > >>
> > > >>You are currently subscribed to ntdev as:
> > xxxxx@microsoft.com To
> > > >>unsubscribe send a blank email to
xxxxx@lists.osr.com
> > > >>
> > > >>—
> > > >>Questions? First check the Kernel Driver FAQ at
> > > >>http://www.osronline.com/article.cfm?id=256
> > > >>
> > > >>You are currently subscribed to ntdev as: unknown lmsubst tag
> > >argument: ‘’
> > > >>To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> > > >
> > > >
> > > >
> > > >—
> > > >Questions? First check the Kernel Driver FAQ at
> > > >http://www.osronline.com/article.cfm?id=256
> > > >
> > > >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
> > > >unsubscribe send a blank email to
xxxxx@lists.osr.com
> > >
> > >
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as:
> > xxxxx@windows.microsoft.com
> > >To unsubscribe send a blank email to
xxxxx@lists.osr.com
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as: unknown lmsubst
> > tag argument: ‘’
> > >To unsubscribe send a blank email to
xxxxx@lists.osr.com
> >
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as:
> > xxxxx@hollistech.com To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
>
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

I could be wrong, but I had the same issue in the past, and a list member
helped me pinpoint it. The issue was that mspdb70.dll needed to be in the
path.

hth,

Philip Lukidis

-----Original Message-----
From: Jose Sua [mailto:xxxxx@windows.microsoft.com]
Sent: Monday, March 21, 2005 1:23 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] enabling wpp

This could be because it can not find the control GUID information, in
the PDB.

Are you sure you are using WPP_CONTROL_GUIDS to define your control GUID
?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
Sent: Friday, March 18, 2005 3:38 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] enabling wpp

Yes, it looks a lot easier to use but for some reason it does not like
the pdb file i input at startup. Therefore when i do file->create new
log
session->add provider, and try to input my file driver.pdb, it tells me
cannot find pdb file. I built my driver as a free driver using ndis 5.1.

Do let me know if there is an easy solution to this.

Manasi

From: “Mark Roddy”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Fri, 18 Mar 2005 15:27:44 -0500
>
>Traceview is a bit easier to use. It is in the ddk tools.
>
>=====================
>Mark Roddy
>Windows .NET/XP/2000 Consulting
>Hollis Technology Solutions 603-321-1032
>www.hollistech.com
>
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> > Sent: Friday, March 18, 2005 2:20 PM
> > To: Windows System Software Devs Interest List
> > Subject: RE: [ntdev] enabling wpp
> >
> > I had a multiple definition of the flags which was causing
> > all kinds of problems.
> >
> > After I compiled it, I tried to run tracelog to capture
> > messages as, I did a tracelog -enumguids to see if the guid
> > is registered and then
> >
> > tracelog -guid #guidnum -level 4 -flag 31 -start log_driver
> >
> > After the test is complete, i stopped the tracelog as,
> > tracelog -stop log_driver
> >
> > When I run the etl file obtained, i dont see any traces and
> > I’m wondering why is that.
> >
> > Thanks,
> > Manasi
> >
> > >From: “Jose Sua”
> > >Reply-To: “Windows System Software Devs Interest List”
> > >
> > >To: “Windows System Software Devs Interest List”
> >
> > >Subject: RE: [ntdev] enabling wpp
> > >Date: Wed, 16 Mar 2005 11:12:08 -0800
> > >
> > >What was the Problem ?
> > >
> > >-----Original Message-----
> > >From: xxxxx@lists.osr.com
> > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
Deval
> > >Sent: Wednesday, March 16, 2005 9:06 AM
> > >To: Windows System Software Devs Interest List
> > >Subject: RE: [ntdev] enabling wpp
> > >
> > >Allright! I got all the issues sorted out and now have compiled
code.
> > >Thanks a lot to all the people on this list who helped out.
> > >
> > >Manasi
> > >
> > > >From: “Manasi Deval”
> > > >Reply-To: “Windows System Software Devs Interest List”
> > > >
> > > >To: “Windows System Software Devs Interest List”
> > > >
> > > >Subject: RE: [ntdev] enabling wpp
> > > >Date: Tue, 15 Mar 2005 15:07:12 -0800
> > > >
> > > >If I do exactly that, such that I print 2 messages on
> > lines 91 and 92
> > > >as
> > > >follows:
> > > > TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing…
> > >\n”);
> > > > MyTraceEvents(“Initializing…\n”);
> > > >The code continues to get compilation problems as:
> > > >
> > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
> > > >class/struct/union t ype
> > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
> > > >class/struct/union t ype
> > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
> > > >class/struct/union type
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
found,
> > > >even
> > >
> > > >with arg ument-dependent lookup
> > > >
> > > >Please also help me understand what the WPP_BIT errors mean. I
can
> > > >see the enumberator in the .tmh file so I’m not sure what
> > else i need
> > > >to
> > >define.
> > > >Manasi
> > > >
> > > >>From: “Jose Sua”
> > > >>Reply-To: “Windows System Software Devs Interest List”
> > > >>
> > > >>To: “Windows System Software Devs Interest List”
> > > >>
> > > >>Subject: RE: [ntdev] enabling wpp
> > > >>Date: Tue, 15 Mar 2005 10:31:23 -0800
> > > >>
> > > >>In the Macro use Level not TRACE_LEVEL_INFORMATION. This
> > refers to
> > > >>an internal WPP control structure not a value.
> > > >>Must be:
> > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > >>DBG_NORMAL).Level >= lvl)
> > > >>
> > > >>RUN_WPP=$(SOURCES)<br>> > > >> -km<br>> > > >> -dll<br>> > > >> -DMacroName<br>> > > >>
> > >
> >
>>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(
> > > >>MS
> > > >>G,
> > > >>…)<br>> > > >> -func:TraceEvents(LEVEL,FLAG,MSG…)
> > > >>
> > > >>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this
macro.
> > > >>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags
> > =DBG_INIT_1 to
> > > >>trcae Level =4 and Flags = 1
> > > >>
> > > >>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to
initialize
> > > >>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags = 1
> > > >>
> > > >>
> > > >>Thanks,
> > > >>Jose Sua
> > > >>ETW Dev Team
> > > >>Microsoft Corporation
> > > >>
> > > >>This posting is provided “AS IS” with no warranties and
> > confers no
> > > >>rights.
> > > >>-----Original Message-----
> > > >>From: xxxxx@lists.osr.com
> > > >>[mailto:xxxxx@lists.osr.com] On Behalf Of
> > Manasi Deval
> > > >>Sent: Tuesday, March 15, 2005 9:24 AM
> > > >>To: Windows System Software Devs Interest List
> > > >>Subject: RE: [ntdev] enabling wpp
> > > >>
> > > >>Thanks for all the help. I think I’m closer but not quite
> > done yet.
> > > >>
> > > >>When I make the changes, to define the macro in the build file
as:
> > > >>RUN_WPP=$(SOURCES)<br>> > > >> -km<br>> > > >> -dll<br>> > > >> -DMacroName<br>> > > >> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> > > >> -func:TraceEvents(LEVEL,FLAG,(MSG…))
> > > >>
> > > >>I include the .tmh file and define the configuration as:
> > > >>#define TRACE_LEVEL_NONE 0 // Tracing is not on
> > > >>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or
> > termination
> > > >>#define TRACE_LEVEL_ERROR 2 // Severe errors that
> > need logging
> > > >>#define TRACE_LEVEL_WARNING 3 // Warnings such as
allocation
> > > >>failure
> > > >>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
> > > >>cases(e.g.,Entry-Exit)
> > > >>
> > > >>#define WPP_CONTROL_GUIDS <br>> > > >> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
> > > >>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> > > >> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 =
> > 0x00000001
> > >/ <br>> > > >> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 =
> > 0x00000010 /
> > ><br>> > > >> /
You can have up to 32 defines. If you want more than
> > >that,<br>> > > >> you have to provide another trace control GUID */<br>> > > >> )
> > > >>
> > > >>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> > > >> WPP_LEVEL_LOGGER(flags)
> > > >>
> > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > >>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
> > > >>
> > > >>Then I call the trace message in the code as follows:
> > > >> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
> > > >>(“Initializing…%s\n”, AdapterName));
> > > >>
> > > >>interrupt.cpp(91) : error C2143: syntax error : missing
> > ‘)’ before
> > > >>‘constant
> > > >>interrupt.cpp(91) : error C2059: syntax error : ‘)’
> > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
> > > >>identifier not d, even with argument-dependent lookup
> > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’:
> > > >>identifier
> > >
> > > >>not f , even with argument-dependent lookup
> > > >>
> > > >>If the trace message in the code on lines 88,89 and 90 is
> > as follows:
> > > >>
> > > >> MyTraceEvents(TRACE_LEVEL_INFORMATION,
“Initializing…%d\n”,
> > > >>Adapter);
> > > >> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”,
Adapter);
> > > >> MyTraceEvents(“Initializing…\n”);
> > > >>
> > > >>I get the compilation error:
> > > >>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not
> > > >>found, even with argument-dependent lookup
> > > >>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not
> > > >>found, even with argument-dependent lookup
> > > >>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not
> > > >>found, even with argument-dependent lookup
> > > >>
> > > >>Hope I am getting closer to the solution.
> > > >>Manasi
> > > >>
> > > >> >From: “Jose Sua”
> > > >> >Reply-To: “Windows System Software Devs Interest List”
> > > >> >
> > > >> >To: “Windows System Software Devs Interest List”
> > > >> >
> > > >> >Subject: RE: [ntdev] enabling wpp
> > > >> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> > > >> >
> > > >> >DoTraceMessage is a macro, is the default trace macro which is
> > > >> >recognized by the WPP preprocesor. You can also define your
own
> > > >> >and tell the preprocessor the name of it in your
> > sources file with
> > > >> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
> > > >> >statement and let WPP scan it. In your example you are not
> > > >> >defining
> > > >>“TRACE”
> > > >> >therefore the preprocessor ignores it and only expands
> > the found
> > > >> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> > > >> >
> > > >> >The general format of a valid trace message function is
> > as follows:
> > > >> >
> > > >> >FunctionName(Conditions…,“Message”,MessageVariables…);
> > > >> >
> > > >> >This is expanded into:
> > > >> >
> > > >> >If (Conditions enabled) {
> > > >> >
> > > >> > Add the flag value, message, and message formatting to
the
> > > >> >PDB symbol file;
> > > >> >
> > > >> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
> > > >> >
> > > >> >}
> > > >> >
> > > >> >When you do a macro for tracing, you must provide:
> > > >> >How to check if tracing is enabled, and the logger
> > handle for the
> > > >> >trace
> > > >>
> > > >> >function.
> > > >> >
> > > >> >So if you define the trace macro as:
> > > >> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> > > >> >You also need to define :
> > > >> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags)
> > WPP_LEVEL_LOGGER(flags)
> > > >> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
> > > >> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ##
> > flags).Level
> > > >> >>=
> > >
> > > >> >lvl)
> > > >> >
> > > >> >A trace statemet will look like:
> > > >> >
> > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
> > > >>%d”,
> > > >> >“World” , i);
> > > >> >
> > > >> >
> > > >> >Is this what you want to do?
> > > >> >
> > > >> >You can further simplify by defining more macros assume
> > that you
> > > >> >define
> > > >>
> > > >> >a flag= Unusual, and want a macro that traces for
> > > >> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> > > >> >
> > > >> >Method 1: define this in your code and have tracewpp
> > scan the file
> > > >> >with
> > > >>
> > > >> >the -scan:filename option In this case you can define
> > additional
> > > >> >configuration for the trace macro such as prefix and suffix,
> > > >> >assumes
> > >
> > > >> >that you have a var named hr.
> > > >> >// begin_wpp config
> > > >> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
> > > >> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
> > > >> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> > > >> >
> > > >> >Method 2: in the source file hace
> > > >>
> > >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> > > >> >)
> > > >> >
> > > >> >In both cases the trace macro in your code will look like:
> > > >> >
> > > >> >MYTRACE(“Init Adapter %s”, AdapterName);
> > > >> >
> > > >> >Thanks,
> > > >> >Jose Sua
> > > >> >Microsoft Corporation
> > > >> >
> > > >> >This posting is provided “AS IS” with no warranties and
> > confers no
> > > >> >rights.
> > > >> >-----Original Message-----
> > > >> >From: xxxxx@lists.osr.com
> > > >> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > > >> >Deval
> > > >> >Sent: Tuesday, March 08, 2005 6:00 PM
> > > >> >To: Windows System Software Devs Interest List
> > > >> >Subject: RE: [ntdev] enabling wpp
> > > >> >
> > > >> >Yes, I am.
> > > >> >
> > > >> >I also tried TraceEvents and that gives me the same problem.
> > > >> >
> > > >> >Manasi
> > > >> >
> > > >> > >From: “Doron Holan”
> > > >> > >Reply-To: “Windows System Software Devs Interest List”
> > > >> > >
> > > >> > >To: “Windows System Software Devs Interest List”
> > > >> > >
> > > >> > >Subject: RE: [ntdev] enabling wpp
> > > >> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> > > >> > >
> > > >> > >Are you wrapping the #include of the .tmh file in an
> > extern “C”?
> > > >> > >
> > > >> > >Ie
> > > >> > >
> > > >> > >extern “C” {
> > > >> > >#include “Foo.tmh”
> > > >> > >}
> > > >> > >
> > > >> > >For foo.cpp?
> > > >> > >
> > > >> > >d
> > > >> > >
> > > >> > >-----Original Message-----
> > > >> > >From: xxxxx@lists.osr.com
> > > >> > >[mailto:xxxxx@lists.osr.com] On Behalf Of
Manasi
> > > >> > >Deval
> > > >> > >Sent: Tuesday, March 08, 2005 4:45 PM
> > > >> > >To: Windows System Software Devs Interest List
> > > >> > >Subject: [ntdev] enabling wpp
> > > >> > >
> > > >> > >Hi all,
> > > >> > > I am trying to enable WPP in my driver. In my free
> > > >> > >version trace
> > > >> >
> > > >> > >macros to print out the DoTraceMessage string.
> > > >> > > #define TRACE(A,LVL,S)
> > > >> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
> > > >> > >LVL, S); where is is the data string. I also added a bunch
of
> > > >> > >debug levels and functions for using here.
> > > >> > >
> > > >> > >In the driver entry, I added
> > > >> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
> > > >> > >similarly in the shutdown function I stop the tracing.
> > > >> > >
> > > >> > >In the makefile, i added :
> > > >> > >
> > > >> > >RUN_WPP=$(SOURCES)<br>> > > >> > > -km<br>> > > >> > > -dll<br>> > > >> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> > > >> > >
> > > >> > >In each of my .cpp files I include the corresponding
> > .tmh file.
> > > >> > >
> > > >> > >The trace message in the code looks like:
> > > >> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> > > >> > >
> > > >> > >When I build all this, I get error # 2065,
> > > >> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> > > >> > >: undeclared identifier.
> > > >> > >
> > > >> > >I am at a loss as to what identifier it is looking
> > for and where
> > > >> > >should
> > > >> >
> > > >> > >i define it.
> > > >> > >
> > > >> > >Thanks,
> > > >> > >Manasi
> > > >> > >
> > > >> > >
> > > >> > >
> > > >> > >—
> > > >> > >Questions? First check the Kernel Driver FAQ at
> > > >> > >http://www.osronline.com/article.cfm?id=256
> > > >> > >
> > > >> > >You are currently subscribed to ntdev as:
> > > >> > >xxxxx@windows.microsoft.com To unsubscribe send a
> > blank email
> > > >> > >to xxxxx@lists.osr.com
> > > >> > >
> > > >> > >—
> > > >> > >Questions? First check the Kernel Driver FAQ at
> > > >> > >http://www.osronline.com/article.cfm?id=256
> > > >> > >
> > > >> > >You are currently subscribed to ntdev as: unknown lmsubst
tag
> > > >>argument:
> > > >> >’‘
> > > >> > >To unsubscribe send a blank email to
> > > >> > >xxxxx@lists.osr.com
> > > >> >
> > > >> >
> > > >> >
> > > >> >—
> > > >> >Questions? First check the Kernel Driver FAQ at
> > > >> >http://www.osronline.com/article.cfm?id=256
> > > >> >
> > > >> >You are currently subscribed to ntdev as:
> > xxxxx@microsoft.com To
> > > >> >unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> > > >> >
> > > >> >—
> > > >> >Questions? First check the Kernel Driver FAQ at
> > > >> >http://www.osronline.com/article.cfm?id=256
> > > >> >
> > > >> >You are currently subscribed to ntdev as: unknown lmsubst tag
> > >argument:
> > > >>’'
> > > >> >To unsubscribe send a blank email to
> > > >> >xxxxx@lists.osr.com
> > > >>
> > > >>
> > > >>
> > > >>—
> > > >>Questions? First check the Kernel Driver FAQ at
> > > >>http://www.osronline.com/article.cfm?id=256
> > > >>
> > > >>You are currently subscribed to ntdev as:
> > xxxxx@microsoft.com To
> > > >>unsubscribe send a blank email to
xxxxx@lists.osr.com
> > > >>
> > > >>—
> > > >>Questions? First check the Kernel Driver FAQ at
> > > >>http://www.osronline.com/article.cfm?id=256
> > > >>
> > > >>You are currently subscribed to ntdev as: unknown lmsubst tag
> > >argument: ‘’
> > > >>To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> > > >
> > > >
> > > >
> > > >—
> > > >Questions? First check the Kernel Driver FAQ at
> > > >http://www.osronline.com/article.cfm?id=256
> > > >
> > > >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
> > > >unsubscribe send a blank email to
xxxxx@lists.osr.com
> > >
> > >
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as:
> > xxxxx@windows.microsoft.com
> > >To unsubscribe send a blank email to
xxxxx@lists.osr.com
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as: unknown lmsubst
> > tag argument: ‘’
> > >To unsubscribe send a blank email to
xxxxx@lists.osr.com
> >
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as:
> > xxxxx@hollistech.com To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
>
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Yes i am.

This is how i’m doing it…

#define WPP_CONTROL_GUIDS \
WPP_DEFINE_CONTROL_GUID(wppDriver, (##guidnum##),\
WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 = 0x00000001 */ \
WPP_DEFINE_BIT(DBG_INIT_2) /* bit 1 = 0x00000002 */ \
)

Thanks,
Manasi

From: “Jose Sua”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Mon, 21 Mar 2005 10:23:19 -0800
>
>This could be because it can not find the control GUID information, in
>the PDB.
>
>Are you sure you are using WPP_CONTROL_GUIDS to define your control GUID
>?
>
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Friday, March 18, 2005 3:38 PM
>To: Windows System Software Devs Interest List
>Subject: RE: [ntdev] enabling wpp
>
>Yes, it looks a lot easier to use but for some reason it does not like
>the pdb file i input at startup. Therefore when i do file->create new
>log
>session->add provider, and try to input my file driver.pdb, it tells me
>cannot find pdb file. I built my driver as a free driver using ndis 5.1.
>
>Do let me know if there is an easy solution to this.
>
>Manasi
>
> >From: “Mark Roddy”
> >Reply-To: “Windows System Software Devs Interest List”
> >
> >To: “Windows System Software Devs Interest List”
> >Subject: RE: [ntdev] enabling wpp
> >Date: Fri, 18 Mar 2005 15:27:44 -0500
> >
> >Traceview is a bit easier to use. It is in the ddk tools.
> >
> >=====================
> >Mark Roddy
> >Windows .NET/XP/2000 Consulting
> >Hollis Technology Solutions 603-321-1032
> >www.hollistech.com
> >
> > > -----Original Message-----
> > > From: xxxxx@lists.osr.com
> > > [mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> > > Sent: Friday, March 18, 2005 2:20 PM
> > > To: Windows System Software Devs Interest List
> > > Subject: RE: [ntdev] enabling wpp
> > >
> > > I had a multiple definition of the flags which was causing
> > > all kinds of problems.
> > >
> > > After I compiled it, I tried to run tracelog to capture
> > > messages as, I did a tracelog -enumguids to see if the guid
> > > is registered and then
> > >
> > > tracelog -guid #guidnum -level 4 -flag 31 -start log_driver
> > >
> > > After the test is complete, i stopped the tracelog as,
> > > tracelog -stop log_driver
> > >
> > > When I run the etl file obtained, i dont see any traces and
> > > I’m wondering why is that.
> > >
> > > Thanks,
> > > Manasi
> > >
> > > >From: “Jose Sua”
> > > >Reply-To: “Windows System Software Devs Interest List”
> > > >
> > > >To: “Windows System Software Devs Interest List”
> > >
> > > >Subject: RE: [ntdev] enabling wpp
> > > >Date: Wed, 16 Mar 2005 11:12:08 -0800
> > > >
> > > >What was the Problem ?
> > > >
> > > >-----Original Message-----
> > > >From: xxxxx@lists.osr.com
> > > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
>Deval
> > > >Sent: Wednesday, March 16, 2005 9:06 AM
> > > >To: Windows System Software Devs Interest List
> > > >Subject: RE: [ntdev] enabling wpp
> > > >
> > > >Allright! I got all the issues sorted out and now have compiled
>code.
> > > >Thanks a lot to all the people on this list who helped out.
> > > >
> > > >Manasi
> > > >
> > > > >From: “Manasi Deval”
> > > > >Reply-To: “Windows System Software Devs Interest List”
> > > > >
> > > > >To: “Windows System Software Devs Interest List”
> > > > >
> > > > >Subject: RE: [ntdev] enabling wpp
> > > > >Date: Tue, 15 Mar 2005 15:07:12 -0800
> > > > >
> > > > >If I do exactly that, such that I print 2 messages on
> > > lines 91 and 92
> > > > >as
> > > > >follows:
> > > > > TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Initializing…
> > > >\n”);
> > > > > MyTraceEvents(“Initializing…\n”);
> > > > >The code continues to get compilation problems as:
> > > > >
> > > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
> > > > >class/struct/union t ype
> > > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
> > > > >class/struct/union t ype
> > > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >
> > > > >Please also help me understand what the WPP_BIT errors mean. I
>can
> > > > >see the enumberator in the .tmh file so I’m not sure what
> > > else i need
> > > > >to
> > > >define.
> > > > >Manasi
> > > > >
> > > > >>From: “Jose Sua”
> > > > >>Reply-To: “Windows System Software Devs Interest List”
> > > > >>
> > > > >>To: “Windows System Software Devs Interest List”
> > > > >>
> > > > >>Subject: RE: [ntdev] enabling wpp
> > > > >>Date: Tue, 15 Mar 2005 10:31:23 -0800
> > > > >>
> > > > >>In the Macro use Level not TRACE_LEVEL_INFORMATION. This
> > > refers to
> > > > >>an internal WPP control structure not a value.
> > > > >>Must be:
> > > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > > >>DBG_NORMAL).Level >= lvl)
> > > > >>
> > > > >>RUN_WPP=$(SOURCES)<br>> > > > >> -km<br>> > > > >> -dll<br>> > > > >> -DMacroName<br>> > > > >>
> > > >
> > >
> >>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(
> > > > >>MS
> > > > >>G,
> > > > >>…)<br>> > > > >> -func:TraceEvents(LEVEL,FLAG,MSG…)
> > > > >>
> > > > >>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this
>macro.
> > > > >>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags
> > > =DBG_INIT_1 to
> > > > >>trcae Level =4 and Flags = 1
> > > > >>
> > > > >>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to
>initialize
> > > > >>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags = 1
> > > > >>
> > > > >>
> > > > >>Thanks,
> > > > >>Jose Sua
> > > > >>ETW Dev Team
> > > > >>Microsoft Corporation
> > > > >>
> > > > >>This posting is provided “AS IS” with no warranties and
> > > confers no
> > > > >>rights.
> > > > >>-----Original Message-----
> > > > >>From: xxxxx@lists.osr.com
> > > > >>[mailto:xxxxx@lists.osr.com] On Behalf Of
> > > Manasi Deval
> > > > >>Sent: Tuesday, March 15, 2005 9:24 AM
> > > > >>To: Windows System Software Devs Interest List
> > > > >>Subject: RE: [ntdev] enabling wpp
> > > > >>
> > > > >>Thanks for all the help. I think I’m closer but not quite
> > > done yet.
> > > > >>
> > > > >>When I make the changes, to define the macro in the build file
>as:
> > > > >>RUN_WPP=$(SOURCES)<br>> > > > >> -km<br>> > > > >> -dll<br>> > > > >> -DMacroName<br>> > > > >> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> > > > >> -func:TraceEvents(LEVEL,FLAG,(MSG…))
> > > > >>
> > > > >>I include the .tmh file and define the configuration as:
> > > > >>#define TRACE_LEVEL_NONE 0 // Tracing is not on
> > > > >>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or
> > > termination
> > > > >>#define TRACE_LEVEL_ERROR 2 // Severe errors that
> > > need logging
> > > > >>#define TRACE_LEVEL_WARNING 3 // Warnings such as
>allocation
> > > > >>failure
> > > > >>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
> > > > >>cases(e.g.,Entry-Exit)
> > > > >>
> > > > >>#define WPP_CONTROL_GUIDS <br>> > > > >> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
> > > > >>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> > > > >> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 =
> > > 0x00000001
> > > >/ <br>> > > > >> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 =
> > > 0x00000010 /
> > > ><br>> > > > >> /
You can have up to 32 defines. If you want more than
> > > >that,<br>> > > > >> you have to provide another trace control GUID */<br>> > > > >> )
> > > > >>
> > > > >>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> > > > >> WPP_LEVEL_LOGGER(flags)
> > > > >>
> > > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > > >>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
> > > > >>
> > > > >>Then I call the trace message in the code as follows:
> > > > >> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
> > > > >>(“Initializing…%s\n”, AdapterName));
> > > > >>
> > > > >>interrupt.cpp(91) : error C2143: syntax error : missing
> > > ‘)’ before
> > > > >>‘constant
> > > > >>interrupt.cpp(91) : error C2059: syntax error : ‘)’
> > > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
> > > > >>identifier not d, even with argument-dependent lookup
> > > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’:
> > > > >>identifier
> > > >
> > > > >>not f , even with argument-dependent lookup
> > > > >>
> > > > >>If the trace message in the code on lines 88,89 and 90 is
> > > as follows:
> > > > >>
> > > > >> MyTraceEvents(TRACE_LEVEL_INFORMATION,
>“Initializing…%d\n”,
> > > > >>Adapter);
> > > > >> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”,
>Adapter);
> > > > >> MyTraceEvents(“Initializing…\n”);
> > > > >>
> > > > >>I get the compilation error:
> > > > >>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier not
> > > > >>found, even with argument-dependent lookup
> > > > >>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier not
> > > > >>found, even with argument-dependent lookup
> > > > >>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier not
> > > > >>found, even with argument-dependent lookup
> > > > >>
> > > > >>Hope I am getting closer to the solution.
> > > > >>Manasi
> > > > >>
> > > > >> >From: “Jose Sua”
> > > > >> >Reply-To: “Windows System Software Devs Interest List”
> > > > >> >
> > > > >> >To: “Windows System Software Devs Interest List”
> > > > >> >
> > > > >> >Subject: RE: [ntdev] enabling wpp
> > > > >> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> > > > >> >
> > > > >> >DoTraceMessage is a macro, is the default trace macro which is
> > > > >> >recognized by the WPP preprocesor. You can also define your
>own
> > > > >> >and tell the preprocessor the name of it in your
> > > sources file with
> > > > >> >-func:MyOwnTracingFunc, or add it in your code as a wpp_config
> > > > >> >statement and let WPP scan it. In your example you are not
> > > > >> >defining
> > > > >>“TRACE”
> > > > >> >therefore the preprocessor ignores it and only expands
> > > the found
> > > > >> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> > > > >> >
> > > > >> >The general format of a valid trace message function is
> > > as follows:
> > > > >> >
> > > > >> >FunctionName(Conditions…,“Message”,MessageVariables…);
> > > > >> >
> > > > >> >This is expanded into:
> > > > >> >
> > > > >> >If (Conditions enabled) {
> > > > >> >
> > > > >> > Add the flag value, message, and message formatting to
>the
> > > > >> >PDB symbol file;
> > > > >> >
> > > > >> >…Call WmiTraceMessage; // for user Mode we use TraceMessage
> > > > >> >
> > > > >> >}
> > > > >> >
> > > > >> >When you do a macro for tracing, you must provide:
> > > > >> >How to check if tracing is enabled, and the logger
> > > handle for the
> > > > >> >trace
> > > > >>
> > > > >> >function.
> > > > >> >
> > > > >> >So if you define the trace macro as:
> > > > >> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> > > > >> >You also need to define :
> > > > >> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags)
> > > WPP_LEVEL_LOGGER(flags)
> > > > >> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
> > > > >> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ##
> > > flags).Level
> > > > >> >>=
> > > >
> > > > >> >lvl)
> > > > >> >
> > > > >> >A trace statemet will look like:
> > > > >> >
> > > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
> > > > >>%d”,
> > > > >> >“World” , i);
> > > > >> >
> > > > >> >
> > > > >> >Is this what you want to do?
> > > > >> >
> > > > >> >You can further simplify by defining more macros assume
> > > that you
> > > > >> >define
> > > > >>
> > > > >> >a flag= Unusual, and want a macro that traces for
> > > > >> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> > > > >> >
> > > > >> >Method 1: define this in your code and have tracewpp
> > > scan the file
> > > > >> >with
> > > > >>
> > > > >> >the -scan:filename option In this case you can define
> > > additional
> > > > >> >configuration for the trace macro such as prefix and suffix,
> > > > >> >assumes
> > > >
> > > > >> >that you have a var named hr.
> > > > >> >// begin_wpp config
> > > > >> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
> > > > >> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…);
> > > > >> >// USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> > > > >> >
> > > > >> >Method 2: in the source file hace
> > > > >>
> > > >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> > > > >> >)
> > > > >> >
> > > > >> >In both cases the trace macro in your code will look like:
> > > > >> >
> > > > >> >MYTRACE(“Init Adapter %s”, AdapterName);
> > > > >> >
> > > > >> >Thanks,
> > > > >> >Jose Sua
> > > > >> >Microsoft Corporation
> > > > >> >
> > > > >> >This posting is provided “AS IS” with no warranties and
> > > confers no
> > > > >> >rights.
> > > > >> >-----Original Message-----
> > > > >> >From: xxxxx@lists.osr.com
> > > > >> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > > > >> >Deval
> > > > >> >Sent: Tuesday, March 08, 2005 6:00 PM
> > > > >> >To: Windows System Software Devs Interest List
> > > > >> >Subject: RE: [ntdev] enabling wpp
> > > > >> >
> > > > >> >Yes, I am.
> > > > >> >
> > > > >> >I also tried TraceEvents and that gives me the same problem.
> > > > >> >
> > > > >> >Manasi
> > > > >> >
> > > > >> > >From: “Doron Holan”
> > > > >> > >Reply-To: “Windows System Software Devs Interest List”
> > > > >> > >
> > > > >> > >To: “Windows System Software Devs Interest List”
> > > > >> > >
> > > > >> > >Subject: RE: [ntdev] enabling wpp
> > > > >> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> > > > >> > >
> > > > >> > >Are you wrapping the #include of the .tmh file in an
> > > extern “C”?
> > > > >> > >
> > > > >> > >Ie
> > > > >> > >
> > > > >> > >extern “C” {
> > > > >> > >#include “Foo.tmh”
> > > > >> > >}
> > > > >> > >
> > > > >> > >For foo.cpp?
> > > > >> > >
> > > > >> > >d
> > > > >> > >
> > > > >> > >-----Original Message-----
> > > > >> > >From: xxxxx@lists.osr.com
> > > > >> > >[mailto:xxxxx@lists.osr.com] On Behalf Of
>Manasi
> > > > >> > >Deval
> > > > >> > >Sent: Tuesday, March 08, 2005 4:45 PM
> > > > >> > >To: Windows System Software Devs Interest List
> > > > >> > >Subject: [ntdev] enabling wpp
> > > > >> > >
> > > > >> > >Hi all,
> > > > >> > > I am trying to enable WPP in my driver. In my free
> > > > >> > >version trace
> > > > >> >
> > > > >> > >macros to print out the DoTraceMessage string.
> > > > >> > > #define TRACE(A,LVL,S)
> > > > >> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
> > > > >> > >LVL, S); where is is the data string. I also added a bunch
>of
> > > > >> > >debug levels and functions for using here.
> > > > >> > >
> > > > >> > >In the driver entry, I added
> > > > >> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
> > > > >> > >similarly in the shutdown function I stop the tracing.
> > > > >> > >
> > > > >> > >In the makefile, i added :
> > > > >> > >
> > > > >> > >RUN_WPP=$(SOURCES)<br>> > > > >> > > -km<br>> > > > >> > > -dll<br>> > > > >> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> > > > >> > >
> > > > >> > >In each of my .cpp files I include the corresponding
> > > .tmh file.
> > > > >> > >
> > > > >> > >The trace message in the code looks like:
> > > > >> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> > > > >> > >
> > > > >> > >When I build all this, I get error # 2065,
> > > > >> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> > > > >> > >: undeclared identifier.
> > > > >> > >
> > > > >> > >I am at a loss as to what identifier it is looking
> > > for and where
> > > > >> > >should
> > > > >> >
> > > > >> > >i define it.
> > > > >> > >
> > > > >> > >Thanks,
> > > > >> > >Manasi
> > > > >> > >
> > > > >> > >
> > > > >> > >
> > > > >> > >—
> > > > >> > >Questions? First check the Kernel Driver FAQ at
> > > > >> > >http://www.osronline.com/article.cfm?id=256
> > > > >> > >
> > > > >> > >You are currently subscribed to ntdev as:
> > > > >> > >xxxxx@windows.microsoft.com To unsubscribe send a
> > > blank email
> > > > >> > >to xxxxx@lists.osr.com
> > > > >> > >
> > > > >> > >—
> > > > >> > >Questions? First check the Kernel Driver FAQ at
> > > > >> > >http://www.osronline.com/article.cfm?id=256
> > > > >> > >
> > > > >> > >You are currently subscribed to ntdev as: unknown lmsubst
>tag
> > > > >>argument:
> > > > >> >’‘
> > > > >> > >To unsubscribe send a blank email to
> > > > >> > >xxxxx@lists.osr.com
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >—
> > > > >> >Questions? First check the Kernel Driver FAQ at
> > > > >> >http://www.osronline.com/article.cfm?id=256
> > > > >> >
> > > > >> >You are currently subscribed to ntdev as:
> > > xxxxx@microsoft.com To
> > > > >> >unsubscribe send a blank email to
> > > xxxxx@lists.osr.com
> > > > >> >
> > > > >> >—
> > > > >> >Questions? First check the Kernel Driver FAQ at
> > > > >> >http://www.osronline.com/article.cfm?id=256
> > > > >> >
> > > > >> >You are currently subscribed to ntdev as: unknown lmsubst tag
> > > >argument:
> > > > >>’'
> > > > >> >To unsubscribe send a blank email to
> > > > >> >xxxxx@lists.osr.com
> > > > >>
> > > > >>
> > > > >>
> > > > >>—
> > > > >>Questions? First check the Kernel Driver FAQ at
> > > > >>http://www.osronline.com/article.cfm?id=256
> > > > >>
> > > > >>You are currently subscribed to ntdev as:
> > > xxxxx@microsoft.com To
> > > > >>unsubscribe send a blank email to
>xxxxx@lists.osr.com
> > > > >>
> > > > >>—
> > > > >>Questions? First check the Kernel Driver FAQ at
> > > > >>http://www.osronline.com/article.cfm?id=256
> > > > >>
> > > > >>You are currently subscribed to ntdev as: unknown lmsubst tag
> > > >argument: ‘’
> > > > >>To unsubscribe send a blank email to
> > > xxxxx@lists.osr.com
> > > > >
> > > > >
> > > > >
> > > > >—
> > > > >Questions? First check the Kernel Driver FAQ at
> > > > >http://www.osronline.com/article.cfm?id=256
> > > > >
> > > > >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
> > > > >unsubscribe send a blank email to
>xxxxx@lists.osr.com
> > > >
> > > >
> > > >
> > > >—
> > > >Questions? First check the Kernel Driver FAQ at
> > > >http://www.osronline.com/article.cfm?id=256
> > > >
> > > >You are currently subscribed to ntdev as:
> > > xxxxx@windows.microsoft.com
> > > >To unsubscribe send a blank email to
>xxxxx@lists.osr.com
> > > >
> > > >—
> > > >Questions? First check the Kernel Driver FAQ at
> > > >http://www.osronline.com/article.cfm?id=256
> > > >
> > > >You are currently subscribed to ntdev as: unknown lmsubst
> > > tag argument: ‘’
> > > >To unsubscribe send a blank email to
>xxxxx@lists.osr.com
> > >
> > >
> > >
> > > —
> > > Questions? First check the Kernel Driver FAQ at
> > > http://www.osronline.com/article.cfm?id=256
> > >
> > > You are currently subscribed to ntdev as:
> > > xxxxx@hollistech.com To unsubscribe send a blank email to
> > > xxxxx@lists.osr.com
> > >
> >
> >
> >
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: xxxxx@hotmail.com
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
>To unsubscribe send a blank email to xxxxx@lists.osr.com

run Tracepdb -f yourdriver.pdb to create the TMF and TMC files.

The TMC file is used by TraceView to get the the flags to enable in your
driver.

If the TMC file has your control GUID and Flags then eveithing is OK
then try again with Traceview to enable the trace using the pdb. Or you
can use the TMC file also.

Thanks,
Jose Sua
ETW Dev Team
Microsoft Corporation

This posting is provided “AS IS” with no warranties andconfers no
rights.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
Sent: Tuesday, March 22, 2005 4:33 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] enabling wpp

Yes i am.

This is how i’m doing it…

#define WPP_CONTROL_GUIDS \
WPP_DEFINE_CONTROL_GUID(wppDriver, (##guidnum##),\
WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 =
0x00000001 */ \
WPP_DEFINE_BIT(DBG_INIT_2) /* bit 1 =
0x00000002 */ \
)

Thanks,
Manasi

From: “Jose Sua”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Mon, 21 Mar 2005 10:23:19 -0800
>
>This could be because it can not find the control GUID information, in
>the PDB.
>
>Are you sure you are using WPP_CONTROL_GUIDS to define your control
>GUID ?
>
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Friday, March 18, 2005 3:38 PM
>To: Windows System Software Devs Interest List
>Subject: RE: [ntdev] enabling wpp
>
>Yes, it looks a lot easier to use but for some reason it does not like
>the pdb file i input at startup. Therefore when i do file->create new
>log
>session->add provider, and try to input my file driver.pdb, it tells me
>cannot find pdb file. I built my driver as a free driver using ndis
5.1.
>
>Do let me know if there is an easy solution to this.
>
>Manasi
>
> >From: “Mark Roddy”
> >Reply-To: “Windows System Software Devs Interest List”
> >
> >To: “Windows System Software Devs Interest List”
> >
> >Subject: RE: [ntdev] enabling wpp
> >Date: Fri, 18 Mar 2005 15:27:44 -0500
> >
> >Traceview is a bit easier to use. It is in the ddk tools.
> >
> >=====================
> >Mark Roddy
> >Windows .NET/XP/2000 Consulting
> >Hollis Technology Solutions 603-321-1032 www.hollistech.com
> >
> > > -----Original Message-----
> > > From: xxxxx@lists.osr.com
> > > [mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > > Deval
> > > Sent: Friday, March 18, 2005 2:20 PM
> > > To: Windows System Software Devs Interest List
> > > Subject: RE: [ntdev] enabling wpp
> > >
> > > I had a multiple definition of the flags which was causing all
> > > kinds of problems.
> > >
> > > After I compiled it, I tried to run tracelog to capture messages
> > > as, I did a tracelog -enumguids to see if the guid is registered
> > > and then
> > >
> > > tracelog -guid #guidnum -level 4 -flag 31 -start log_driver
> > >
> > > After the test is complete, i stopped the tracelog as, tracelog
> > > -stop log_driver
> > >
> > > When I run the etl file obtained, i dont see any traces and I’m
> > > wondering why is that.
> > >
> > > Thanks,
> > > Manasi
> > >
> > > >From: “Jose Sua”
> > > >Reply-To: “Windows System Software Devs Interest List”
> > > >
> > > >To: “Windows System Software Devs Interest List”
> > >
> > > >Subject: RE: [ntdev] enabling wpp
> > > >Date: Wed, 16 Mar 2005 11:12:08 -0800
> > > >
> > > >What was the Problem ?
> > > >
> > > >-----Original Message-----
> > > >From: xxxxx@lists.osr.com
> > > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
>Deval
> > > >Sent: Wednesday, March 16, 2005 9:06 AM
> > > >To: Windows System Software Devs Interest List
> > > >Subject: RE: [ntdev] enabling wpp
> > > >
> > > >Allright! I got all the issues sorted out and now have compiled
>code.
> > > >Thanks a lot to all the people on this list who helped out.
> > > >
> > > >Manasi
> > > >
> > > > >From: “Manasi Deval”
> > > > >Reply-To: “Windows System Software Devs Interest List”
> > > > >
> > > > >To: “Windows System Software Devs Interest List”
> > > > >
> > > > >Subject: RE: [ntdev] enabling wpp
> > > > >Date: Tue, 15 Mar 2005 15:07:12 -0800
> > > > >
> > > > >If I do exactly that, such that I print 2 messages on
> > > lines 91 and 92
> > > > >as
> > > > >follows:
> > > > > TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1,
“Initializing…
> > > >\n”);
> > > > > MyTraceEvents(“Initializing…\n”);
> > > > >The code continues to get compilation problems as:
> > > > >
> > > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
> > > > >class/struct/union t ype
> > > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
> > > > >class/struct/union t ype
> > > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
> > > > >class/struct/union type
> > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
>found,
> > > > >even
> > > >
> > > > >with arg ument-dependent lookup
> > > > >
> > > > >Please also help me understand what the WPP_BIT errors mean. I
>can
> > > > >see the enumberator in the .tmh file so I’m not sure what
> > > else i need
> > > > >to
> > > >define.
> > > > >Manasi
> > > > >
> > > > >>From: “Jose Sua”
> > > > >>Reply-To: “Windows System Software Devs Interest List”
> > > > >>
> > > > >>To: “Windows System Software Devs Interest List”
> > > > >>
> > > > >>Subject: RE: [ntdev] enabling wpp
> > > > >>Date: Tue, 15 Mar 2005 10:31:23 -0800
> > > > >>
> > > > >>In the Macro use Level not TRACE_LEVEL_INFORMATION. This
> > > refers to
> > > > >>an internal WPP control structure not a value.
> > > > >>Must be:
> > > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > > >>DBG_NORMAL).Level >= lvl)
> > > > >>
> > > > >>RUN_WPP=$(SOURCES)<br>> > > > >> -km<br>> > > > >> -dll<br>> > > > >> -DMacroName<br>> > > > >>
> > > >
> > >
> >>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(
> > > > >>MS
> > > > >>G,
> > > > >>…)<br>> > > > >> -func:TraceEvents(LEVEL,FLAG,MSG…)
> > > > >>
> > > > >>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this
>macro.
> > > > >>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags
> > > =DBG_INIT_1 to
> > > > >>trcae Level =4 and Flags = 1
> > > > >>
> > > > >>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to
>initialize
> > > > >>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags =

> > > > >>1
> > > > >>
> > > > >>
> > > > >>Thanks,
> > > > >>Jose Sua
> > > > >>ETW Dev Team
> > > > >>Microsoft Corporation
> > > > >>
> > > > >>This posting is provided “AS IS” with no warranties and
> > > confers no
> > > > >>rights.
> > > > >>-----Original Message-----
> > > > >>From: xxxxx@lists.osr.com
> > > > >>[mailto:xxxxx@lists.osr.com] On Behalf Of
> > > Manasi Deval
> > > > >>Sent: Tuesday, March 15, 2005 9:24 AM
> > > > >>To: Windows System Software Devs Interest List
> > > > >>Subject: RE: [ntdev] enabling wpp
> > > > >>
> > > > >>Thanks for all the help. I think I’m closer but not quite
> > > done yet.
> > > > >>
> > > > >>When I make the changes, to define the macro in the build file
>as:
> > > > >>RUN_WPP=$(SOURCES)<br>> > > > >> -km<br>> > > > >> -dll<br>> > > > >> -DMacroName<br>> > > > >> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> > > > >> -func:TraceEvents(LEVEL,FLAG,(MSG…))
> > > > >>
> > > > >>I include the .tmh file and define the configuration as:
> > > > >>#define TRACE_LEVEL_NONE 0 // Tracing is not on
> > > > >>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or
> > > termination
> > > > >>#define TRACE_LEVEL_ERROR 2 // Severe errors that
> > > need logging
> > > > >>#define TRACE_LEVEL_WARNING 3 // Warnings such as
>allocation
> > > > >>failure
> > > > >>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
> > > > >>cases(e.g.,Entry-Exit)
> > > > >>
> > > > >>#define WPP_CONTROL_GUIDS <br>> > > > >> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
> > > > >>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> > > > >> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 =
> > > 0x00000001
> > > >/ <br>> > > > >> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 =
> > > 0x00000010 /
> > > ><br>> > > > >> /
You can have up to 32 defines. If you want more
> > > > >> than
> > > >that,<br>> > > > >> you have to provide another trace control GUID
*/<br>> > > > >> )
> > > > >>
> > > > >>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> > > > >> WPP_LEVEL_LOGGER(flags)
> > > > >>
> > > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > > >>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
> > > > >>
> > > > >>Then I call the trace message in the code as follows:
> > > > >> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
> > > > >>(“Initializing…%s\n”, AdapterName));
> > > > >>
> > > > >>interrupt.cpp(91) : error C2143: syntax error : missing
> > > ‘)’ before
> > > > >>‘constant
> > > > >>interrupt.cpp(91) : error C2059: syntax error : ‘)’
> > > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
> > > > >>identifier not d, even with argument-dependent lookup
> > > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’:
> > > > >>identifier
> > > >
> > > > >>not f , even with argument-dependent lookup
> > > > >>
> > > > >>If the trace message in the code on lines 88,89 and 90 is
> > > as follows:
> > > > >>
> > > > >> MyTraceEvents(TRACE_LEVEL_INFORMATION,
>“Initializing…%d\n”,
> > > > >>Adapter);
> > > > >> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”,
>Adapter);
> > > > >> MyTraceEvents(“Initializing…\n”);
> > > > >>
> > > > >>I get the compilation error:
> > > > >>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier
> > > > >>not found, even with argument-dependent lookup
> > > > >>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier
> > > > >>not found, even with argument-dependent lookup
> > > > >>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier
> > > > >>not found, even with argument-dependent lookup
> > > > >>
> > > > >>Hope I am getting closer to the solution.
> > > > >>Manasi
> > > > >>
> > > > >> >From: “Jose Sua”
> > > > >> >Reply-To: “Windows System Software Devs Interest List”
> > > > >> >
> > > > >> >To: “Windows System Software Devs Interest List”
> > > > >> >
> > > > >> >Subject: RE: [ntdev] enabling wpp
> > > > >> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> > > > >> >
> > > > >> >DoTraceMessage is a macro, is the default trace macro which
> > > > >> >is recognized by the WPP preprocesor. You can also define
> > > > >> >your
>own
> > > > >> >and tell the preprocessor the name of it in your
> > > sources file with
> > > > >> >-func:MyOwnTracingFunc, or add it in your code as a
> > > > >> >wpp_config statement and let WPP scan it. In your example
> > > > >> >you are not defining
> > > > >>“TRACE”
> > > > >> >therefore the preprocessor ignores it and only expands
> > > the found
> > > > >> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> > > > >> >
> > > > >> >The general format of a valid trace message function is
> > > as follows:
> > > > >> >
> > > > >> >FunctionName(Conditions…,“Message”,MessageVariables…);
> > > > >> >
> > > > >> >This is expanded into:
> > > > >> >
> > > > >> >If (Conditions enabled) {
> > > > >> >
> > > > >> > Add the flag value, message, and message formatting to
>the
> > > > >> >PDB symbol file;
> > > > >> >
> > > > >> >…Call WmiTraceMessage; // for user Mode we use
> > > > >> >TraceMessage
> > > > >> >
> > > > >> >}
> > > > >> >
> > > > >> >When you do a macro for tracing, you must provide:
> > > > >> >How to check if tracing is enabled, and the logger
> > > handle for the
> > > > >> >trace
> > > > >>
> > > > >> >function.
> > > > >> >
> > > > >> >So if you define the trace macro as:
> > > > >> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> > > > >> >You also need to define :
> > > > >> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags)
> > > WPP_LEVEL_LOGGER(flags)
> > > > >> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
> > > > >> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ##
> > > flags).Level
> > > > >> >>=
> > > >
> > > > >> >lvl)
> > > > >> >
> > > > >> >A trace statemet will look like:
> > > > >> >
> > > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
> > > > >>%d”,
> > > > >> >“World” , i);
> > > > >> >
> > > > >> >
> > > > >> >Is this what you want to do?
> > > > >> >
> > > > >> >You can further simplify by defining more macros assume
> > > that you
> > > > >> >define
> > > > >>
> > > > >> >a flag= Unusual, and want a macro that traces for
> > > > >> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> > > > >> >
> > > > >> >Method 1: define this in your code and have tracewpp
> > > scan the file
> > > > >> >with
> > > > >>
> > > > >> >the -scan:filename option In this case you can define
> > > additional
> > > > >> >configuration for the trace macro such as prefix and suffix,

> > > > >> >assumes
> > > >
> > > > >> >that you have a var named hr.
> > > > >> >// begin_wpp config
> > > > >> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
> > > > >> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> > > > >> >); // USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> > > > >> >
> > > > >> >Method 2: in the source file hace
> > > > >>
> > >
>-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> > > > >> >)
> > > > >> >
> > > > >> >In both cases the trace macro in your code will look like:
> > > > >> >
> > > > >> >MYTRACE(“Init Adapter %s”, AdapterName);
> > > > >> >
> > > > >> >Thanks,
> > > > >> >Jose Sua
> > > > >> >Microsoft Corporation
> > > > >> >
> > > > >> >This posting is provided “AS IS” with no warranties and
> > > confers no
> > > > >> >rights.
> > > > >> >-----Original Message-----
> > > > >> >From: xxxxx@lists.osr.com
> > > > >> >[mailto:xxxxx@lists.osr.com] On Behalf Of
> > > > >> >Manasi Deval
> > > > >> >Sent: Tuesday, March 08, 2005 6:00 PM
> > > > >> >To: Windows System Software Devs Interest List
> > > > >> >Subject: RE: [ntdev] enabling wpp
> > > > >> >
> > > > >> >Yes, I am.
> > > > >> >
> > > > >> >I also tried TraceEvents and that gives me the same problem.
> > > > >> >
> > > > >> >Manasi
> > > > >> >
> > > > >> > >From: “Doron Holan”
> > > > >> > >Reply-To: “Windows System Software Devs Interest List”
> > > > >> > >
> > > > >> > >To: “Windows System Software Devs Interest List”
> > > > >> > >
> > > > >> > >Subject: RE: [ntdev] enabling wpp
> > > > >> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> > > > >> > >
> > > > >> > >Are you wrapping the #include of the .tmh file in an
> > > extern “C”?
> > > > >> > >
> > > > >> > >Ie
> > > > >> > >
> > > > >> > >extern “C” {
> > > > >> > >#include “Foo.tmh”
> > > > >> > >}
> > > > >> > >
> > > > >> > >For foo.cpp?
> > > > >> > >
> > > > >> > >d
> > > > >> > >
> > > > >> > >-----Original Message-----
> > > > >> > >From: xxxxx@lists.osr.com
> > > > >> > >[mailto:xxxxx@lists.osr.com] On Behalf Of
>Manasi
> > > > >> > >Deval
> > > > >> > >Sent: Tuesday, March 08, 2005 4:45 PM
> > > > >> > >To: Windows System Software Devs Interest List
> > > > >> > >Subject: [ntdev] enabling wpp
> > > > >> > >
> > > > >> > >Hi all,
> > > > >> > > I am trying to enable WPP in my driver. In my free
> > > > >> > >version trace
> > > > >> >
> > > > >> > >macros to print out the DoTraceMessage string.
> > > > >> > > #define TRACE(A,LVL,S)
> > > > >> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
> > > > >> > >LVL, S); where is is the data string. I also added a bunch
>of
> > > > >> > >debug levels and functions for using here.
> > > > >> > >
> > > > >> > >In the driver entry, I added
> > > > >> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
> > > > >> > >similarly in the shutdown function I stop the tracing.
> > > > >> > >
> > > > >> > >In the makefile, i added :
> > > > >> > >
> > > > >> > >RUN_WPP=$(SOURCES)<br>> > > > >> > > -km<br>> > > > >> > > -dll<br>> > > > >> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> > > > >> > >
> > > > >> > >In each of my .cpp files I include the corresponding
> > > .tmh file.
> > > > >> > >
> > > > >> > >The trace message in the code looks like:
> > > > >> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> > > > >> > >
> > > > >> > >When I build all this, I get error # 2065,
> > > > >> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> > > > >> > >: undeclared identifier.
> > > > >> > >
> > > > >> > >I am at a loss as to what identifier it is looking
> > > for and where
> > > > >> > >should
> > > > >> >
> > > > >> > >i define it.
> > > > >> > >
> > > > >> > >Thanks,
> > > > >> > >Manasi
> > > > >> > >
> > > > >> > >
> > > > >> > >
> > > > >> > >—
> > > > >> > >Questions? First check the Kernel Driver FAQ at
> > > > >> > >http://www.osronline.com/article.cfm?id=256
> > > > >> > >
> > > > >> > >You are currently subscribed to ntdev as:
> > > > >> > >xxxxx@windows.microsoft.com To unsubscribe send a
> > > blank email
> > > > >> > >to xxxxx@lists.osr.com
> > > > >> > >
> > > > >> > >—
> > > > >> > >Questions? First check the Kernel Driver FAQ at
> > > > >> > >http://www.osronline.com/article.cfm?id=256
> > > > >> > >
> > > > >> > >You are currently subscribed to ntdev as: unknown lmsubst
>tag
> > > > >>argument:
> > > > >> >’‘
> > > > >> > >To unsubscribe send a blank email to
> > > > >> > >xxxxx@lists.osr.com
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >—
> > > > >> >Questions? First check the Kernel Driver FAQ at
> > > > >> >http://www.osronline.com/article.cfm?id=256
> > > > >> >
> > > > >> >You are currently subscribed to ntdev as:
> > > xxxxx@microsoft.com To
> > > > >> >unsubscribe send a blank email to
> > > xxxxx@lists.osr.com
> > > > >> >
> > > > >> >—
> > > > >> >Questions? First check the Kernel Driver FAQ at
> > > > >> >http://www.osronline.com/article.cfm?id=256
> > > > >> >
> > > > >> >You are currently subscribed to ntdev as: unknown lmsubst
> > > > >> >tag
> > > >argument:
> > > > >>’‘
> > > > >> >To unsubscribe send a blank email to
> > > > >> >xxxxx@lists.osr.com
> > > > >>
> > > > >>
> > > > >>
> > > > >>—
> > > > >>Questions? First check the Kernel Driver FAQ at
> > > > >>http://www.osronline.com/article.cfm?id=256
> > > > >>
> > > > >>You are currently subscribed to ntdev as:
> > > xxxxx@microsoft.com To
> > > > >>unsubscribe send a blank email to
>xxxxx@lists.osr.com
> > > > >>
> > > > >>—
> > > > >>Questions? First check the Kernel Driver FAQ at
> > > > >>http://www.osronline.com/article.cfm?id=256
> > > > >>
> > > > >>You are currently subscribed to ntdev as: unknown lmsubst tag
> > > >argument: ‘’
> > > > >>To unsubscribe send a blank email to
> > > xxxxx@lists.osr.com
> > > > >
> > > > >
> > > > >
> > > > >—
> > > > >Questions? First check the Kernel Driver FAQ at
> > > > >http://www.osronline.com/article.cfm?id=256
> > > > >
> > > > >You are currently subscribed to ntdev as: xxxxx@hotmail.com To

> > > > >unsubscribe send a blank email to
>xxxxx@lists.osr.com
> > > >
> > > >
> > > >
> > > >—
> > > >Questions? First check the Kernel Driver FAQ at
> > > >http://www.osronline.com/article.cfm?id=256
> > > >
> > > >You are currently subscribed to ntdev as:
> > > xxxxx@windows.microsoft.com
> > > >To unsubscribe send a blank email to
>xxxxx@lists.osr.com
> > > >
> > > >—
> > > >Questions? First check the Kernel Driver FAQ at
> > > >http://www.osronline.com/article.cfm?id=256
> > > >
> > > >You are currently subscribed to ntdev as: unknown lmsubst
> > > tag argument: ‘’
> > > >To unsubscribe send a blank email to
>xxxxx@lists.osr.com
> > >
> > >
> > >
> > > —
> > > Questions? First check the Kernel Driver FAQ at
> > > http://www.osronline.com/article.cfm?id=256
> > >
> > > You are currently subscribed to ntdev as:
> > > xxxxx@hollistech.com To unsubscribe send a blank email to
> > > xxxxx@lists.osr.com
> > >
> >
> >
> >
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
> >unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com

>To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument:
’'
>To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

I was not using the tracepdb because i get the following error message :
tracepdb : error BNP0000: WPPFMT Failed to load library mspdb70.dll
(0x0000007E)

Actually mspdb70.dll is in the path and i’m not sure what else i need to do
to make it work.

Manasi

From: “Jose Sua”
>Reply-To: “Windows System Software Devs Interest List”
>
>To: “Windows System Software Devs Interest List”
>Subject: RE: [ntdev] enabling wpp
>Date: Wed, 23 Mar 2005 07:55:44 -0800
>
>run Tracepdb -f yourdriver.pdb to create the TMF and TMC files.
>
>The TMC file is used by TraceView to get the the flags to enable in your
>driver.
>
>If the TMC file has your control GUID and Flags then eveithing is OK
>then try again with Traceview to enable the trace using the pdb. Or you
>can use the TMC file also.
>
>
>
>Thanks,
>Jose Sua
>ETW Dev Team
>Microsoft Corporation
>
>This posting is provided “AS IS” with no warranties andconfers no
>rights.
>
>-----Original Message-----
>From: xxxxx@lists.osr.com
>[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
>Sent: Tuesday, March 22, 2005 4:33 PM
>To: Windows System Software Devs Interest List
>Subject: RE: [ntdev] enabling wpp
>
>Yes i am.
>
>This is how i’m doing it…
>
>
>#define WPP_CONTROL_GUIDS <br>> WPP_DEFINE_CONTROL_GUID(wppDriver, (##guidnum##),<br>> WPP_DEFINE_BIT(DBG_INIT_1) /* bit 0 =
>0x00000001 / <br>> WPP_DEFINE_BIT(DBG_INIT_2) / bit 1 =
>0x00000002 / <br>> )
>
>Thanks,
>Manasi
>
> >From: “Jose Sua”
> >Reply-To: “Windows System Software Devs Interest List”
> >
> >To: “Windows System Software Devs Interest List”
> >Subject: RE: [ntdev] enabling wpp
> >Date: Mon, 21 Mar 2005 10:23:19 -0800
> >
> >This could be because it can not find the control GUID information, in
> >the PDB.
> >
> >Are you sure you are using WPP_CONTROL_GUIDS to define your control
> >GUID ?
> >
> >-----Original Message-----
> >From: xxxxx@lists.osr.com
> >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi Deval
> >Sent: Friday, March 18, 2005 3:38 PM
> >To: Windows System Software Devs Interest List
> >Subject: RE: [ntdev] enabling wpp
> >
> >Yes, it looks a lot easier to use but for some reason it does not like
> >the pdb file i input at startup. Therefore when i do file->create new
> >log
> >session->add provider, and try to input my file driver.pdb, it tells me
> >cannot find pdb file. I built my driver as a free driver using ndis
>5.1.
> >
> >Do let me know if there is an easy solution to this.
> >
> >Manasi
> >
> > >From: “Mark Roddy”
> > >Reply-To: “Windows System Software Devs Interest List”
> > >
> > >To: “Windows System Software Devs Interest List”
> > >
> > >Subject: RE: [ntdev] enabling wpp
> > >Date: Fri, 18 Mar 2005 15:27:44 -0500
> > >
> > >Traceview is a bit easier to use. It is in the ddk tools.
> > >
> > >=====================
> > >Mark Roddy
> > >Windows .NET/XP/2000 Consulting
> > >Hollis Technology Solutions 603-321-1032 www.hollistech.com
> > >
> > > > -----Original Message-----
> > > > From: xxxxx@lists.osr.com
> > > > [mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> > > > Deval
> > > > Sent: Friday, March 18, 2005 2:20 PM
> > > > To: Windows System Software Devs Interest List
> > > > Subject: RE: [ntdev] enabling wpp
> > > >
> > > > I had a multiple definition of the flags which was causing all
> > > > kinds of problems.
> > > >
> > > > After I compiled it, I tried to run tracelog to capture messages
> > > > as, I did a tracelog -enumguids to see if the guid is registered
> > > > and then
> > > >
> > > > tracelog -guid #guidnum -level 4 -flag 31 -start log_driver
> > > >
> > > > After the test is complete, i stopped the tracelog as, tracelog
> > > > -stop log_driver
> > > >
> > > > When I run the etl file obtained, i dont see any traces and I’m
> > > > wondering why is that.
> > > >
> > > > Thanks,
> > > > Manasi
> > > >
> > > > >From: “Jose Sua”
> > > > >Reply-To: “Windows System Software Devs Interest List”
> > > > >
> > > > >To: “Windows System Software Devs Interest List”
> > > >
> > > > >Subject: RE: [ntdev] enabling wpp
> > > > >Date: Wed, 16 Mar 2005 11:12:08 -0800
> > > > >
> > > > >What was the Problem ?
> > > > >
> > > > >-----Original Message-----
> > > > >From: xxxxx@lists.osr.com
> > > > >[mailto:xxxxx@lists.osr.com] On Behalf Of Manasi
> >Deval
> > > > >Sent: Wednesday, March 16, 2005 9:06 AM
> > > > >To: Windows System Software Devs Interest List
> > > > >Subject: RE: [ntdev] enabling wpp
> > > > >
> > > > >Allright! I got all the issues sorted out and now have compiled
> >code.
> > > > >Thanks a lot to all the people on this list who helped out.
> > > > >
> > > > >Manasi
> > > > >
> > > > > >From: “Manasi Deval”
> > > > > >Reply-To: “Windows System Software Devs Interest List”
> > > > > >
> > > > > >To: “Windows System Software Devs Interest List”
> > > > > >
> > > > > >Subject: RE: [ntdev] enabling wpp
> > > > > >Date: Tue, 15 Mar 2005 15:07:12 -0800
> > > > > >
> > > > > >If I do exactly that, such that I print 2 messages on
> > > > lines 91 and 92
> > > > > >as
> > > > > >follows:
> > > > > > TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1,
>“Initializing…
> > > > >\n”);
> > > > > > MyTraceEvents(“Initializing…\n”);
> > > > > >The code continues to get compilation problems as:
> > > > > >
> > > > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > > > >class/struct/union type
> > > > > >interrupt.cpp(91) : error C2228: left of ‘.Flags’ must have
> > > > > >class/struct/union t ype
> > > > > >interrupt.cpp(91) : error C2228: left of ‘.Control’ must have
> > > > > >class/struct/union type
> > > > > >interrupt.cpp(91) : error C2228: left of ‘.Logger’ must have
> > > > > >class/struct/union type
> > > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
> >found,
> > > > > >even
> > > > >
> > > > > >with arg ument-dependent lookup
> > > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
> >found,
> > > > > >even
> > > > >
> > > > > >with arg ument-dependent lookup
> > > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
> >found,
> > > > > >even
> > > > >
> > > > > >with arg ument-dependent lookup
> > > > > >interrupt.cpp(91) : error C3861: ‘WPP_BIT_’: identifier not
> >found,
> > > > > >even
> > > > >
> > > > > >with arg ument-dependent lookup
> > > > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > > > >class/struct/union type
> > > > > >interrupt.cpp(92) : error C2228: left of ‘.Flags’ must have
> > > > > >class/struct/union t ype
> > > > > >interrupt.cpp(92) : error C2228: left of ‘.Control’ must have
> > > > > >class/struct/union type
> > > > > >interrupt.cpp(92) : error C2228: left of ‘.Logger’ must have
> > > > > >class/struct/union type
> > > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
> >found,
> > > > > >even
> > > > >
> > > > > >with arg ument-dependent lookup
> > > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
> >found,
> > > > > >even
> > > > >
> > > > > >with arg ument-dependent lookup
> > > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
> >found,
> > > > > >even
> > > > >
> > > > > >with arg ument-dependent lookup
> > > > > >interrupt.cpp(92) : error C3861: ‘WPP_BIT_’: identifier not
> >found,
> > > > > >even
> > > > >
> > > > > >with arg ument-dependent lookup
> > > > > >
> > > > > >Please also help me understand what the WPP_BIT errors mean. I
> >can
> > > > > >see the enumberator in the .tmh file so I’m not sure what
> > > > else i need
> > > > > >to
> > > > >define.
> > > > > >Manasi
> > > > > >
> > > > > >>From: “Jose Sua”
> > > > > >>Reply-To: “Windows System Software Devs Interest List”
> > > > > >>
> > > > > >>To: “Windows System Software Devs Interest List”
> > > > > >>
> > > > > >>Subject: RE: [ntdev] enabling wpp
> > > > > >>Date: Tue, 15 Mar 2005 10:31:23 -0800
> > > > > >>
> > > > > >>In the Macro use Level not TRACE_LEVEL_INFORMATION. This
> > > > refers to
> > > > > >>an internal WPP control structure not a value.
> > > > > >>Must be:
> > > > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > > > >>DBG_NORMAL).Level >= lvl)
> > > > > >>
> > > > > >>RUN_WPP=$(SOURCES)<br>> > > > > >> -km<br>> > > > > >> -dll<br>> > > > > >> -DMacroName<br>> > > > > >>
> > > > >
> > > >
> > >>-func:MyTraceEvents{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=DBG_INIT_1}(
> > > > > >>MS
> > > > > >>G,
> > > > > >>…)<br>> > > > > >> -func:TraceEvents(LEVEL,FLAG,MSG…)
> > > > > >>
> > > > > >>MyTraceEvents(“Initializing…%d\n”, Adapter); // for this
> >macro.
> > > > > >>LEVEL harcoded to TRACE_LEVEL_INFORMATION, and Flags
> > > > =DBG_INIT_1 to
> > > > > >>trcae Level =4 and Flags = 1
> > > > > >>
> > > > > >>TraceEvents(TRACE_LEVEL_FATAL, DBG_INIT_1, “Failed to
> >initialize
> > > > > >>Adapter Status %d”, Adapter); // Trace if Level= 1 and Flags =
>
> > > > > >>1
> > > > > >>
> > > > > >>
> > > > > >>Thanks,
> > > > > >>Jose Sua
> > > > > >>ETW Dev Team
> > > > > >>Microsoft Corporation
> > > > > >>
> > > > > >>This posting is provided “AS IS” with no warranties and
> > > > confers no
> > > > > >>rights.
> > > > > >>-----Original Message-----
> > > > > >>From: xxxxx@lists.osr.com
> > > > > >>[mailto:xxxxx@lists.osr.com] On Behalf Of
> > > > Manasi Deval
> > > > > >>Sent: Tuesday, March 15, 2005 9:24 AM
> > > > > >>To: Windows System Software Devs Interest List
> > > > > >>Subject: RE: [ntdev] enabling wpp
> > > > > >>
> > > > > >>Thanks for all the help. I think I’m closer but not quite
> > > > done yet.
> > > > > >>
> > > > > >>When I make the changes, to define the macro in the build file
> >as:
> > > > > >>RUN_WPP=$(SOURCES)<br>> > > > > >> -km<br>> > > > > >> -dll<br>> > > > > >> -DMacroName<br>> > > > > >> -func:MyTraceEvents(LEVEL, FLAG,(MSG,…))<br>> > > > > >> -func:TraceEvents(LEVEL,FLAG,(MSG…))
> > > > > >>
> > > > > >>I include the .tmh file and define the configuration as:
> > > > > >>#define TRACE_LEVEL_NONE 0 // Tracing is not on
> > > > > >>#define TRACE_LEVEL_FATAL 1 // Abnormal exit or
> > > > termination
> > > > > >>#define TRACE_LEVEL_ERROR 2 // Severe errors that
> > > > need logging
> > > > > >>#define TRACE_LEVEL_WARNING 3 // Warnings such as
> >allocation
> > > > > >>failure
> > > > > >>#define TRACE_LEVEL_INFORMATION 4 // Includes non-error
> > > > > >>cases(e.g.,Entry-Exit)
> > > > > >>
> > > > > >>#define WPP_CONTROL_GUIDS <br>> > > > > >> WPP_DEFINE_CONTROL_GUID(ixgbDriver,
> > > > > >>(B7868145,8EB9,4b06,BC04,41ED07A49251),<br>> > > > > >> WPP_DEFINE_BIT(DBG_INIT_1) /
bit 0 =
> > > > 0x00000001
> > > > >/ <br>> > > > > >> WPP_DEFINE_BIT(DBG_NORMAL) / bit 1 =
> > > > 0x00000010 /
> > > > ><br>> > > > > >> /
You can have up to 32 defines. If you want more
> > > > > >> than
> > > > >that,<br>> > > > > >> you have to provide another trace control GUID
>*/<br>> > > > > >> )
> > > > > >>
> > > > > >>#define WPP_LEVEL_FLAG_LOGGER(lvl,flags) <br>> > > > > >> WPP_LEVEL_LOGGER(flags)
> > > > > >>
> > > > > >>#define WPP_LEVEL_FLAG_ENABLED(lvl, flags) <br>> > > > > >> (WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_##
> > > > > >>DBG_NORMAL).TRACE_LEVEL_INFORMATION >= lvl)
> > > > > >>
> > > > > >>Then I call the trace message in the code as follows:
> > > > > >> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_NORMAL,
> > > > > >>(“Initializing…%s\n”, AdapterName));
> > > > > >>
> > > > > >>interrupt.cpp(91) : error C2143: syntax error : missing
> > > > ‘)’ before
> > > > > >>‘constant
> > > > > >>interrupt.cpp(91) : error C2059: syntax error : ‘)’
> > > > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_ENABLED’:
> > > > > >>identifier not d, even with argument-dependent lookup
> > > > > >>interrupt.cpp(91) : error C3861: ‘WPP_LEVEL_FLAG_S_LOGGER’:
> > > > > >>identifier
> > > > >
> > > > > >>not f , even with argument-dependent lookup
> > > > > >>
> > > > > >>If the trace message in the code on lines 88,89 and 90 is
> > > > as follows:
> > > > > >>
> > > > > >> MyTraceEvents(TRACE_LEVEL_INFORMATION,
> >“Initializing…%d\n”,
> > > > > >>Adapter);
> > > > > >> MyTraceEvents(DBG_NORMAL, “Initializing…%d\n”,
> >Adapter);
> > > > > >> MyTraceEvents(“Initializing…\n”);
> > > > > >>
> > > > > >>I get the compilation error:
> > > > > >>interrupt.cpp(88) : error C3861: ‘MyTraceEvents’: identifier
> > > > > >>not found, even with argument-dependent lookup
> > > > > >>interrupt.cpp(89) : error C3861: ‘MyTraceEvents’: identifier
> > > > > >>not found, even with argument-dependent lookup
> > > > > >>interrupt.cpp(90) : error C3861: ‘MyTraceEvents’: identifier
> > > > > >>not found, even with argument-dependent lookup
> > > > > >>
> > > > > >>Hope I am getting closer to the solution.
> > > > > >>Manasi
> > > > > >>
> > > > > >> >From: “Jose Sua”
> > > > > >> >Reply-To: “Windows System Software Devs Interest List”
> > > > > >> >
> > > > > >> >To: “Windows System Software Devs Interest List”
> > > > > >> >
> > > > > >> >Subject: RE: [ntdev] enabling wpp
> > > > > >> >Date: Wed, 9 Mar 2005 10:08:36 -0800
> > > > > >> >
> > > > > >> >DoTraceMessage is a macro, is the default trace macro which
> > > > > >> >is recognized by the WPP preprocesor. You can also define
> > > > > >> >your
> >own
> > > > > >> >and tell the preprocessor the name of it in your
> > > > sources file with
> > > > > >> >-func:MyOwnTracingFunc, or add it in your code as a
> > > > > >> >wpp_config statement and let WPP scan it. In your example
> > > > > >> >you are not defining
> > > > > >>“TRACE”
> > > > > >> >therefore the preprocessor ignores it and only expands
> > > > the found
> > > > > >> >DoTraceMessage defined in #define TRACE(A,LVL,S)
> > > > > >> >
> > > > > >> >The general format of a valid trace message function is
> > > > as follows:
> > > > > >> >
> > > > > >> >FunctionName(Conditions…,“Message”,MessageVariables…);
> > > > > >> >
> > > > > >> >This is expanded into:
> > > > > >> >
> > > > > >> >If (Conditions enabled) {
> > > > > >> >
> > > > > >> > Add the flag value, message, and message formatting to
> >the
> > > > > >> >PDB symbol file;
> > > > > >> >
> > > > > >> >…Call WmiTraceMessage; // for user Mode we use
> > > > > >> >TraceMessage
> > > > > >> >
> > > > > >> >}
> > > > > >> >
> > > > > >> >When you do a macro for tracing, you must provide:
> > > > > >> >How to check if tracing is enabled, and the logger
> > > > handle for the
> > > > > >> >trace
> > > > > >>
> > > > > >> >function.
> > > > > >> >
> > > > > >> >So if you define the trace macro as:
> > > > > >> >DoTraceLevelMessage(LEVEL,FLAGS,MSG,…)
> > > > > >> >You also need to define :
> > > > > >> >#define WPP_LEVEL_FLAGS_LOGGER(lvl,flags)
> > > > WPP_LEVEL_LOGGER(flags)
> > > > > >> >#define WPP_LEVEL_FLAGS_ENABLED(lvl, flags)
> > > > > >> >(WPP_LEVEL_ENABLED(flags) && WPP_CONTROL(WPP_BIT_ ##
> > > > flags).Level
> > > > > >> >>=
> > > > >
> > > > > >> >lvl)
> > > > > >> >
> > > > > >> >A trace statemet will look like:
> > > > > >> >
> > > > DoTraceLevelMessage(TRACE_LEVEL_INFORMATION,Noise, “Hello, %s
> > > > > >>%d”,
> > > > > >> >“World” , i);
> > > > > >> >
> > > > > >> >
> > > > > >> >Is this what you want to do?
> > > > > >> >
> > > > > >> >You can further simplify by defining more macros assume
> > > > that you
> > > > > >> >define
> > > > > >>
> > > > > >> >a flag= Unusual, and want a macro that traces for
> > > > > >> >level=TRACE_LEVEL_INFORMATION and Flags = Unusual
> > > > > >> >
> > > > > >> >Method 1: define this in your code and have tracewpp
> > > > scan the file
> > > > > >> >with
> > > > > >>
> > > > > >> >the -scan:filename option In this case you can define
> > > > additional
> > > > > >> >configuration for the trace macro such as prefix and suffix,
>
> > > > > >> >assumes
> > > > >
> > > > > >> >that you have a var named hr.
> > > > > >> >// begin_wpp config
> > > > > >> >// USEPREFIX (MYTRACE,“%!STDPREFIX!”); // FUNC
> > > > > >> >MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> > > > > >> >); // USESUFFIX (MYTRACE,“Init Adapter:%d”,hr); // end_wpp
> > > > > >> >
> > > > > >> >Method 2: in the source file hace
> > > > > >>
> > > >
> >-func:MYTRACE{LEVEL=TRACE_LEVEL_INFORMATION,FLAGS=Unusual}(MSG,…
> > > > > >> >)
> > > > > >> >
> > > > > >> >In both cases the trace macro in your code will look like:
> > > > > >> >
> > > > > >> >MYTRACE(“Init Adapter %s”, AdapterName);
> > > > > >> >
> > > > > >> >Thanks,
> > > > > >> >Jose Sua
> > > > > >> >Microsoft Corporation
> > > > > >> >
> > > > > >> >This posting is provided “AS IS” with no warranties and
> > > > confers no
> > > > > >> >rights.
> > > > > >> >-----Original Message-----
> > > > > >> >From: xxxxx@lists.osr.com
> > > > > >> >[mailto:xxxxx@lists.osr.com] On Behalf Of
> > > > > >> >Manasi Deval
> > > > > >> >Sent: Tuesday, March 08, 2005 6:00 PM
> > > > > >> >To: Windows System Software Devs Interest List
> > > > > >> >Subject: RE: [ntdev] enabling wpp
> > > > > >> >
> > > > > >> >Yes, I am.
> > > > > >> >
> > > > > >> >I also tried TraceEvents and that gives me the same problem.
> > > > > >> >
> > > > > >> >Manasi
> > > > > >> >
> > > > > >> > >From: “Doron Holan”
> > > > > >> > >Reply-To: “Windows System Software Devs Interest List”
> > > > > >> > >
> > > > > >> > >To: “Windows System Software Devs Interest List”
> > > > > >> > >
> > > > > >> > >Subject: RE: [ntdev] enabling wpp
> > > > > >> > >Date: Tue, 8 Mar 2005 17:36:10 -0800
> > > > > >> > >
> > > > > >> > >Are you wrapping the #include of the .tmh file in an
> > > > extern “C”?
> > > > > >> > >
> > > > > >> > >Ie
> > > > > >> > >
> > > > > >> > >extern “C” {
> > > > > >> > >#include “Foo.tmh”
> > > > > >> > >}
> > > > > >> > >
> > > > > >> > >For foo.cpp?
> > > > > >> > >
> > > > > >> > >d
> > > > > >> > >
> > > > > >> > >-----Original Message-----
> > > > > >> > >From: xxxxx@lists.osr.com
> > > > > >> > >[mailto:xxxxx@lists.osr.com] On Behalf Of
> >Manasi
> > > > > >> > >Deval
> > > > > >> > >Sent: Tuesday, March 08, 2005 4:45 PM
> > > > > >> > >To: Windows System Software Devs Interest List
> > > > > >> > >Subject: [ntdev] enabling wpp
> > > > > >> > >
> > > > > >> > >Hi all,
> > > > > >> > > I am trying to enable WPP in my driver. In my free
> > > > > >> > >version trace
> > > > > >> >
> > > > > >> > >macros to print out the DoTraceMessage string.
> > > > > >> > > #define TRACE(A,LVL,S)
> > > > > >> > >DoTraceMessage(TRACE_LEVEL_INFORMATION,
> > > > > >> > >LVL, S); where is is the data string. I also added a bunch
> >of
> > > > > >> > >debug levels and functions for using here.
> > > > > >> > >
> > > > > >> > >In the driver entry, I added
> > > > > >> > > WPP_INIT_TRACING(DriverObject, RegistryPath); and
> > > > > >> > >similarly in the shutdown function I stop the tracing.
> > > > > >> > >
> > > > > >> > >In the makefile, i added :
> > > > > >> > >
> > > > > >> > >RUN_WPP=$(SOURCES)<br>> > > > > >> > > -km<br>> > > > > >> > > -dll<br>> > > > > >> > > -func:DoTraceMessage(LEVEL,FLAG,(MSG,…))
> > > > > >> > >
> > > > > >> > >In each of my .cpp files I include the corresponding
> > > > .tmh file.
> > > > > >> > >
> > > > > >> > >The trace message in the code looks like:
> > > > > >> > > TRACE(Adapter, DBG_INTERRUPT_2, (“Init adapter\n”));
> > > > > >> > >
> > > > > >> > >When I build all this, I get error # 2065,
> > > > > >> > >WPP_ANNOTATE_FILENAME_LINE_NUMBER
> > > > > >> > >: undeclared identifier.
> > > > > >> > >
> > > > > >> > >I am at a loss as to what identifier it is looking
> > > > for and where
> > > > > >> > >should
> > > > > >> >
> > > > > >> > >i define it.
> > > > > >> > >
> > > > > >> > >Thanks,
> > > > > >> > >Manasi
> > > > > >> > >
> > > > > >> > >
> > > > > >> > >
> > > > > >> > >—
> > > > > >> > >Questions? First check the Kernel Driver FAQ at
> > > > > >> > >http://www.osronline.com/article.cfm?id=256
> > > > > >> > >
> > > > > >> > >You are currently subscribed to ntdev as:
> > > > > >> > >xxxxx@windows.microsoft.com To unsubscribe send a
> > > > blank email
> > > > > >> > >to xxxxx@lists.osr.com
> > > > > >> > >
> > > > > >> > >—
> > > > > >> > >Questions? First check the Kernel Driver FAQ at
> > > > > >> > >http://www.osronline.com/article.cfm?id=256
> > > > > >> > >
> > > > > >> > >You are currently subscribed to ntdev as: unknown lmsubst
> >tag
> > > > > >>argument:
> > > > > >> >’‘
> > > > > >> > >To unsubscribe send a blank email to
> > > > > >> > >xxxxx@lists.osr.com
> > > > > >> >
> > > > > >> >
> > > > > >> >
> > > > > >> >—
> > > > > >> >Questions? First check the Kernel Driver FAQ at
> > > > > >> >http://www.osronline.com/article.cfm?id=256
> > > > > >> >
> > > > > >> >You are currently subscribed to ntdev as:
> > > > xxxxx@microsoft.com To
> > > > > >> >unsubscribe send a blank email to
> > > > xxxxx@lists.osr.com
> > > > > >> >
> > > > > >> >—
> > > > > >> >Questions? First check the Kernel Driver FAQ at
> > > > > >> >http://www.osronline.com/article.cfm?id=256
> > > > > >> >
> > > > > >> >You are currently subscribed to ntdev as: unknown lmsubst
> > > > > >> >tag
> > > > >argument:
> > > > > >>’‘
> > > > > >> >To unsubscribe send a blank email to
> > > > > >> >xxxxx@lists.osr.com
> > > > > >>
> > > > > >>
> > > > > >>
> > > > > >>—
> > > > > >>Questions? First check the Kernel Driver FAQ at
> > > > > >>http://www.osronline.com/article.cfm?id=256
> > > > > >>
> > > > > >>You are currently subscribed to ntdev as:
> > > > xxxxx@microsoft.com To
> > > > > >>unsubscribe send a blank email to
> >xxxxx@lists.osr.com
> > > > > >>
> > > > > >>—
> > > > > >>Questions? First check the Kernel Driver FAQ at
> > > > > >>http://www.osronline.com/article.cfm?id=256
> > > > > >>
> > > > > >>You are currently subscribed to ntdev as: unknown lmsubst tag
> > > > >argument: ‘’
> > > > > >>To unsubscribe send a blank email to
> > > > xxxxx@lists.osr.com
> > > > > >
> > > > > >
> > > > > >
> > > > > >—
> > > > > >Questions? First check the Kernel Driver FAQ at
> > > > > >http://www.osronline.com/article.cfm?id=256
> > > > > >
> > > > > >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
>
> > > > > >unsubscribe send a blank email to
> >xxxxx@lists.osr.com
> > > > >
> > > > >
> > > > >
> > > > >—
> > > > >Questions? First check the Kernel Driver FAQ at
> > > > >http://www.osronline.com/article.cfm?id=256
> > > > >
> > > > >You are currently subscribed to ntdev as:
> > > > xxxxx@windows.microsoft.com
> > > > >To unsubscribe send a blank email to
> >xxxxx@lists.osr.com
> > > > >
> > > > >—
> > > > >Questions? First check the Kernel Driver FAQ at
> > > > >http://www.osronline.com/article.cfm?id=256
> > > > >
> > > > >You are currently subscribed to ntdev as: unknown lmsubst
> > > > tag argument: ‘’
> > > > >To unsubscribe send a blank email to
> >xxxxx@lists.osr.com
> > > >
> > > >
> > > >
> > > > —
> > > > Questions? First check the Kernel Driver FAQ at
> > > > http://www.osronline.com/article.cfm?id=256
> > > >
> > > > You are currently subscribed to ntdev as:
> > > > xxxxx@hollistech.com To unsubscribe send a blank email to
> > > > xxxxx@lists.osr.com
> > > >
> > >
> > >
> > >
> > >
> > >—
> > >Questions? First check the Kernel Driver FAQ at
> > >http://www.osronline.com/article.cfm?id=256
> > >
> > >You are currently subscribed to ntdev as: xxxxx@hotmail.com To
> > >unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
>
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >—
> >Questions? First check the Kernel Driver FAQ at
> >http://www.osronline.com/article.cfm?id=256
> >
> >You are currently subscribed to ntdev as: unknown lmsubst tag argument:
>’'
> >To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
>To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
>To unsubscribe send a blank email to xxxxx@lists.osr.com