ETW Summary (was: RE: problems with DMA transfer with size > 4k)

Sorry for my short answer, but I’m glad I grabbed your interest in this
– It’s one topic I love to evangelize because of the time and energy
it’s saved me. The executive summary is that ETW is an option to
replace debug prints with minimal developer effort, minimal source code
changes, and automatic performance benefits. ETW also offers many
enhanced functionality options, once the initial conversion is
completed.

First, I found an MSDN site to start reading from:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ddtools
/hh/ddtools/st_32pf.asp

In addition, there is a powerpoint from WinHEC 2003 at the following
page under “General Driver Information”, “Debugging and Diagnostics”,
named “Diagnostic Tracing with Event Tracing for Windows and TraceView”:
http://www.microsoft.com/whdc/winhec/pres03.mspx

The power point slide provides a great summary of what ETW is all about
and points to samples in the DDK, while the MSDN site provides a
step-by-step model to enabling tracing. The rest of this post is
exceptionally long, as I want to provide a very full answer to what’s so
great about ETW. (much of the below is taken from one of my internal
presentations to my group – NT storage.)


ReallyLongDescriptionOfETW

Does this sound familiar to you? You want a checked build, or even a
few DbgPrints in your driver - but you aren’t going to get it? You can’t
set up a debugger? You don’t want to give out your private symbols
file? You’re chasing a bug that goes away when you slow the system down
(“Heisenbug”)? There is a solution…

ETW is a low-overhead generic logging mechanism which can be directed to
many places. All retail builds of Windows since Windows 2000 include
Event Tracing for Windows (ETW), and it’s easy to change over from
DbgPrintEx, KdPrintEx, or almost any other function you are currently
using.

ETW was designed to address our main problems with previous “solutions”.
It allows you to ship binaries with logging code left in (IMAPI (cd
burning service & driver), Redbook, CDROM in XP all use this). It
allows single machine logging, without requiring a kernel debugger.
Tracing using ETW does not expose the static text strings in the
resulting binary trace (More information on this later). Finally, when
it’s not enabled, ETW uses minimal overhead.

Protecting your company’s IP is important. With current solutions, many
developers put function names and significant other information in debug
prints which simplifies reverse engineering. With ETW, all the static
portions of a debug print statement are moved to the private symbol
file. As an added bonus, the pre-processing phase also automatically
includes the function name, source file name, and line number for each
of the debug prints. Part of the logging architecture for ETW
automatically attaches a timestamp to each and every event (instance of
the debug print being called). So, you get lots of free information
with less overhead and less “information leakage”.

Converting to basic ETW usage is easy. The five steps are:

  1. add ‘#include “filename.tmh”’ to each source file.
  2. define a GUID and tracing levels for controlling tracing in your
    driver.
  3. add calls to WPP_INIT_TRACING() in DriverEntry (AddDevice if Win2k
    support required).
  4. add calls to WPP_CLEANUP() in DriverUnload (RemoveDevice if Win2k
    support required).
  5. add RUN_WPP statement to your sources file (use special template for
    Win2k support).
    <note: i will give more details at the end of this long mail.>

    Once you’re up and running with the basic ETW, you can then extend to
    using more advanced functionality, such as easy logging of supported
    “extended” formats. The ones most useful are %!STATUS! (for NTSTATUS
    codes), %!HRESULT! (for HRESULT codes), %!IPADDR!, %!guid!, and
    %!WAITTIME!. Each of these pretty-prints the related items when viewing
    the traces, which saves time tracking down what NTSTATUS 0xC0000305 is
    (STATUS_COPY_PROTECTION_FAILURE).

    Why else use ETW? If you convert your macros (or use a new one) to
    enable LEVEL and FLAG selection, you can enable logging in a more
    fine-tuned way. You can use ETW for both your user-mode and kernel-mode
    components and get a single log with both of their events interleaved.
    You can redirect to the kernel debugger (in XP and higher). As a side
    benefit, it will find those cases where you mismatched the format string
    and argument types.

    The remaining question is “Where should I add tracing?” There is no
    magic here, as it requires the same considerations as any other type of
    debugging help. Conversion of existing debug prints/asserts to remove
    static debug strings from you binaries is a good start. If you’re
    providing a library, providing a good trace statement in every error
    path is also a good idea as it provides excellent benefits to the client
    with minimal overhead. Other areas known to have been traced:
    * Configuration settings
    * Operations that deviate from standard
    * State changes – information and cause
    * Public APIs – input and results
    * Scavenging or cleanup operations
    Of course, you should always avoid tracing anything where your trace
    data may expose security or privacy data, or even where it may appear to
    do so.

    -----------------------------
    In-depth conversion process
    -----------------------------
    This will presume that you are using a macro of the form
    KdPrintEx((component, level, …)). Some notes will be provided for
    where changes are needed to support other macros or functions.

    Step #1 – Adding the new include file.
    For each .C/.C++ file with a debug print, include (after all other
    includes) a file called .tmh. This must be done for each file
    with a debug print, but is suggested for all files. For example, if
    your source file was named “foo.cpp”, then you’d include “foo.tmh”.

    Step #2 – Define a GUID and trace levels
    Use your favorite GUID generator. I use UUIDGEN.EXE or GUIDGEN.EXE.
    Use this GUID in a new header file you include in all your .C files.
    The contents should be simliar to:
    #define WPP_CONTROL_GUIDS <br>
    WPP_DEFINE_CONTROL_GUID(MyDriver,(aaaaaaaa,bbbb,cccc,dddd,eeeeeeeeffff),
    <br> WPP_DEFINE_BIT(MyDriverError) /* bit 0 = 0x00000001 / <br> WPP_DEFINE_BIT(MyDriverWarning) / bit 1 = 0x00000002 / <br> WPP_DEFINE_BIT(RedbookDebugTrace) / bit 2 = 0x00000004 / <br> WPP_DEFINE_BIT(RedbookDebugInfo) / bit 3 = 0x00000008 / <br> WPP_DEFINE_BIT(RedbookDebugD04) / bit 4 = 0x00000010 */ <br> )

    Step #3 – Add call to WPP_INIT_TRACING() in DriverEntry
    Register for ETW in your DriverEntry() routine by calling
    WPP_INIT_TRACING(DriverObject, RegistryPath). See MSDN for
    documentation. If you require your driver to load on Windows 2000, you
    must instead call WPP_INIT_TRACING(DeviceObject, RegistryPath) in you
    AddDevice() routine. Because you cannot get trace statements from your
    driver until this macro is called, it is highly suggested to call it at
    the earliest possible time in your driver.

    Step #4 – Add call to WPP_CLEANUP() in DriverUnload
    Unregister from ETW in you DriverUnload() routine by calling
    WPP_CLEANUP(DriverObject). This is the counterpart to what is done in
    step 3. See MSDN for documentation. If you require your driver to load
    on Windows 2000, you must instead call WPP_CLEANUP(DeviceObject) just
    before you call DeleteDevice() on your device object. Because you
    cannot get trace statements from your driver after this macro is called,
    it is highly recommended to call it at the last possible time.

    NOTE: If you fail to de-register, there are NO compile errors - you
    will have an outstanding reference on your driver object, and subsequent
    loads will fail, causing a reboot required prompt. Be careful here!

    Step #5 – Add RUN_WPP statement to your source file.
    This is actually the most complex part of the initial conversion
    process. For most cases, simply adding the following lines will work:

    RUN_WPP=$(SOURCES) -km -func:KdPrintEx((NULL, LEVEL, MSG, …))

    Note that the above line uses the double-parenthesis. If your
    macro/function doesn’t use double-parenthesis, just use
    single-parenthesis above. Note

    Now, the most-requested item I have had when describing this conversion
    process:

    ---------------------------
    Common compilation errors
    ---------------------------

    errlog.c(86) : error C2065: ‘MyDriverDebugError’ : undeclared identifier
    – See step #1 (including TMH file)

    obj\i386\errlog.tmh() : error : Please define control model via
    WPP_CONTROL_GUIDS or WPP_DEFAULT_CONTROL_GUID macros
    obj\i386\errlog.tmh() : error : don’t forget to call WPP_INIT_TRACING
    and WPP_CLEANUP in your main, DriverEntry or DllInit
    – See step #2 (guid and flag generation)

    BUILD: Linking z:\MyDriver directory
    1>Linking Executable - obj\i386\MyDriver.sys for i386
    1>pnp.obj() : error LNK2019: unresolved external symbol _WppCleanupKm@4
    referenced in function _MyDriverUnload@4
    1>obj\i386\MyDriver.sys() : error LNK1120: 1 unresolved externals
    – See step #3 (WPP_INIT)

    1>Compiling - errlog.c for i386
    1>errlog.c(33) : error C1083: Cannot open include file: ‘errlog.tmh’: No
    such file or directory
    – See step #5 (RUN_WPP in sources)

    ------------
    That’s it!
    ------------

    Now load up TraceView (provided in recent DDKs) for the easiest way to
    enable/disable/view tracing. Other tools allow for more options and/or
    scripting, but TraceView is the best interactive tool I have found out
    there.

    ------------------
    Under the covers
    ------------------

    How does ETW do it’s thing? It’s all based on the __annotation()
    compiler item coupled with WMI tracing (which is fast but requires
    significantly more developer time). Look at the macros and things in
    the DDK’s tools\WppConfig\rev1 directory. I can’t claim to understand
    it all, but it seems to work fairly well.

    The RUN_WPP line causes the WPP preprocessor to run against the files
    listed (typically $(SOURCES)). It goes in and changes any line with the
    noted -func: into a macro based on the template in use (km-default.tpl
    for kernel mode, km-w2k.tpl for win2k compatible kernel mode). As part
    of this process, the static strings from each format are stored in the
    TMH file as__annotation() marks so they go into the resulting private
    symbol file. The remaining arguments are parse by the preprocessor into
    WMI tracing events. Each tracing statement is surrounded by an if()
    block which checks a globals (or two) added to your driver
    automatically. The if() statement gives you the speed when tracing is
    not enabled, the logging using WMI traces gives you speed when tracing
    is enabled because the string isn’t formatted until it is viewed
    (typically by another application/host at lower IRQL). KdPrint() and
    similar have the machine running the code also formatting the strings
    before displaying them. Insert some additional black magic, smoke, and
    mirrors, and you have ETW.

    ------------
    Conclusion
    ------------

    The above text has not been reviewed by any tech writer or other party
    at Microsoft, and everything above is my own personal opinion. I hope
    it’s useful to you, but it may contain errors which make life harder for
    you at times. If so, let me know and I’ll fix it in later postings
    (since I’m keeping the above for later use).

    Cheers,
    .

    -----Original Message-----
    From: Daniel Luethi [mailto:xxxxx@psi.ch]
    Sent: Wednesday, January 28, 2004 12:23 AM
    Subject: Re: problems with DMA transfer with size > 4k

    Henry,

    First thank you for your answer. You’re mentioning Event Tracing for
    Windows (ETW) as a usable tool. I’m not sure if this is a standard
    windows service? Is it the Event Viewer which can be started in:

    My Computer (Right Mouseclick)>Manage>ComputerManagement>System
    Tools>Event Viewer> ?

    I never used this tool, what is it good for? It seems to trace some more
    or less important info, warnings and errors.

    regards
    Daniel

    Henry Gabryjelski wrote:
    > It’s great to hear you found the root cause of the problem. Debug
    > prints which are formatted on the same system that is running the code

    > are always going to affect perf. There are alternatives, however…
    >
    > Please allow me to suggest you look into the use of Event Tracing for
    > Windows (ETW). It offers very quick conversion from any of your
    > current macros/functions, and allows you to selectively enable tracing

    > on FRE builds without causing major slowdowns when not enabled. I’ve
    > used this for all my components since XP, and one or two of the ones
    > in Windows 2000. This allows you to get logs from a customer without
    > shipping a new binary to them, without using a debugger (although
    > that’s an option too), and without the customer being able to decode
    > the log (without you giving the magic decoder ring).
    >
    > ETW is only documented in the DDK currently (I couldn’t find it in
    > MSDN, at least).
    >
    > .
    >
    > -----Original Message-----
    > From: Daniel Luethi [mailto:xxxxx@psi.ch]
    > Sent: Wednesday, January 21, 2004 11:46 PM
    > Subject: Re: problems with DMA transfer with size > 4k
    >
    > Russ, Mats and Martin
    >
    > Thanks for your answers. After a careful look with the PCI snooper (we

    > also use VMetro) I noticed where we loose so much time in the
    transfer:
    > The DbgPrints() commands which I used quite often to watch every step
    > in the driver took really lots of time, I think about 10us each (on a
    > 2GHz P4!). After changing DbgPrint() to KdPrint(()) the driver was
    > free of debug prints if I build it in fre environment. The speed
    > increase was
    > dramatically: We reached 98MB/s (before 20MB/s)! The snooper showed us

    > that the time between two bursts (one burst is actually one page:
    > 1024DW, I think that’s the fastest way) decreased from previously
    > 100us down to 12us (the PCI bus is 33MHz, 32Bit)!
    > So, we’re now really satisfied with that speed, which is pretty close
    > to the theoretical speed. Of course the time between two birsts where
    > we have to load the PCI bus master card again with the new logical
    > address, depends very much on the speed of the PC, but so far it looks

    > good and the need of scatter/gather became less urgent!
    > Actually the driver is now switched to scatter/gather in
    > IoGetDmaAdapter(DevDescr…) kind of a single scatter/gather register.

    > This way I can be sure the user buffer is not copied intermediately.
    >
    > Daniel
    ></note:>

Henry -

According to the link you provided below, “WPP software tracing is supported on Microsoft Windows XP and later.” However, you mention later: “All retail builds of Windows since Windows 2000 include Event Tracing for Windows (ETW), and it’s easy to change over from
DbgPrintEx, KdPrintEx, or almost any other function you are currently using.” Which statement is accurate, or are both accurate (that WPP and ETW are not necessarily synonymous)?

Thanks,

Ed Lau

----- Original Message -----
From: Henry Gabryjelski
To: Windows System Software Devs Interest List
Sent: Thursday, January 29, 2004 1:45 PM
Subject: [ntdev] ETW Summary (was: RE: problems with DMA transfer with size > 4k)

Sorry for my short answer, but I’m glad I grabbed your interest in this
– It’s one topic I love to evangelize because of the time and energy
it’s saved me. The executive summary is that ETW is an option to
replace debug prints with minimal developer effort, minimal source code
changes, and automatic performance benefits. ETW also offers many
enhanced functionality options, once the initial conversion is
completed.

First, I found an MSDN site to start reading from:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ddtools
/hh/ddtools/st_32pf.asp

In addition, there is a powerpoint from WinHEC 2003 at the following
page under “General Driver Information”, “Debugging and Diagnostics”,
named “Diagnostic Tracing with Event Tracing for Windows and TraceView”:
http://www.microsoft.com/whdc/winhec/pres03.mspx

The power point slide provides a great summary of what ETW is all about
and points to samples in the DDK, while the MSDN site provides a
step-by-step model to enabling tracing. The rest of this post is
exceptionally long, as I want to provide a very full answer to what’s so
great about ETW. (much of the below is taken from one of my internal
presentations to my group – NT storage.)


ReallyLongDescriptionOfETW

Does this sound familiar to you? You want a checked build, or even a
few DbgPrints in your driver - but you aren’t going to get it? You can’t
set up a debugger? You don’t want to give out your private symbols
file? You’re chasing a bug that goes away when you slow the system down
(“Heisenbug”)? There is a solution…

ETW is a low-overhead generic logging mechanism which can be directed to
many places. All retail builds of Windows since Windows 2000 include
Event Tracing for Windows (ETW), and it’s easy to change over from
DbgPrintEx, KdPrintEx, or almost any other function you are currently
using.

ETW was designed to address our main problems with previous “solutions”.
It allows you to ship binaries with logging code left in (IMAPI (cd
burning service & driver), Redbook, CDROM in XP all use this). It
allows single machine logging, without requiring a kernel debugger.
Tracing using ETW does not expose the static text strings in the
resulting binary trace (More information on this later). Finally, when
it’s not enabled, ETW uses minimal overhead.

Protecting your company’s IP is important. With current solutions, many
developers put function names and significant other information in debug
prints which simplifies reverse engineering. With ETW, all the static
portions of a debug print statement are moved to the private symbol
file. As an added bonus, the pre-processing phase also automatically
includes the function name, source file name, and line number for each
of the debug prints. Part of the logging architecture for ETW
automatically attaches a timestamp to each and every event (instance of
the debug print being called). So, you get lots of free information
with less overhead and less “information leakage”.

Converting to basic ETW usage is easy. The five steps are:

  1. add ‘#include “filename.tmh”’ to each source file.
  2. define a GUID and tracing levels for controlling tracing in your
    driver.
  3. add calls to WPP_INIT_TRACING() in DriverEntry (AddDevice if Win2k
    support required).
  4. add calls to WPP_CLEANUP() in DriverUnload (RemoveDevice if Win2k
    support required).
  5. add RUN_WPP statement to your sources file (use special template for
    Win2k support).
    <note: i will give more details at the end of this long mail.>

    Once you’re up and running with the basic ETW, you can then extend to
    using more advanced functionality, such as easy logging of supported
    “extended” formats. The ones most useful are %!STATUS! (for NTSTATUS
    codes), %!HRESULT! (for HRESULT codes), %!IPADDR!, %!guid!, and
    %!WAITTIME!. Each of these pretty-prints the related items when viewing
    the traces, which saves time tracking down what NTSTATUS 0xC0000305 is
    (STATUS_COPY_PROTECTION_FAILURE).

    Why else use ETW? If you convert your macros (or use a new one) to
    enable LEVEL and FLAG selection, you can enable logging in a more
    fine-tuned way. You can use ETW for both your user-mode and kernel-mode
    components and get a single log with both of their events interleaved.
    You can redirect to the kernel debugger (in XP and higher). As a side
    benefit, it will find those cases where you mismatched the format string
    and argument types.

    The remaining question is “Where should I add tracing?” There is no
    magic here, as it requires the same considerations as any other type of
    debugging help. Conversion of existing debug prints/asserts to remove
    static debug strings from you binaries is a good start. If you’re
    providing a library, providing a good trace statement in every error
    path is also a good idea as it provides excellent benefits to the client
    with minimal overhead. Other areas known to have been traced:
    * Configuration settings
    * Operations that deviate from standard
    * State changes – information and cause
    * Public APIs – input and results
    * Scavenging or cleanup operations
    Of course, you should always avoid tracing anything where your trace
    data may expose security or privacy data, or even where it may appear to
    do so.

    -----------------------------
    In-depth conversion process
    -----------------------------
    This will presume that you are using a macro of the form
    KdPrintEx((component, level, …)). Some notes will be provided for
    where changes are needed to support other macros or functions.

    Step #1 – Adding the new include file.
    For each .C/.C++ file with a debug print, include (after all other
    includes) a file called .tmh. This must be done for each file
    with a debug print, but is suggested for all files. For example, if
    your source file was named “foo.cpp”, then you’d include “foo.tmh”.

    Step #2 – Define a GUID and trace levels
    Use your favorite GUID generator. I use UUIDGEN.EXE or GUIDGEN.EXE.
    Use this GUID in a new header file you include in all your .C files.
    The contents should be simliar to:
    #define WPP_CONTROL_GUIDS <br>
    WPP_DEFINE_CONTROL_GUID(MyDriver,(aaaaaaaa,bbbb,cccc,dddd,eeeeeeeeffff),
    <br> WPP_DEFINE_BIT(MyDriverError) /* bit 0 = 0x00000001 / <br> WPP_DEFINE_BIT(MyDriverWarning) / bit 1 = 0x00000002 / <br> WPP_DEFINE_BIT(RedbookDebugTrace) / bit 2 = 0x00000004 / <br> WPP_DEFINE_BIT(RedbookDebugInfo) / bit 3 = 0x00000008 / <br> WPP_DEFINE_BIT(RedbookDebugD04) / bit 4 = 0x00000010 */ <br> )

    Step #3 – Add call to WPP_INIT_TRACING() in DriverEntry
    Register for ETW in your DriverEntry() routine by calling
    WPP_INIT_TRACING(DriverObject, RegistryPath). See MSDN for
    documentation. If you require your driver to load on Windows 2000, you
    must instead call WPP_INIT_TRACING(DeviceObject, RegistryPath) in you
    AddDevice() routine. Because you cannot get trace statements from your
    driver until this macro is called, it is highly suggested to call it at
    the earliest possible time in your driver.

    Step #4 – Add call to WPP_CLEANUP() in DriverUnload
    Unregister from ETW in you DriverUnload() routine by calling
    WPP_CLEANUP(DriverObject). This is the counterpart to what is done in
    step 3. See MSDN for documentation. If you require your driver to load
    on Windows 2000, you must instead call WPP_CLEANUP(DeviceObject) just
    before you call DeleteDevice() on your device object. Because you
    cannot get trace statements from your driver after this macro is called,
    it is highly recommended to call it at the last possible time.

    NOTE: If you fail to de-register, there are NO compile errors - you
    will have an outstanding reference on your driver object, and subsequent
    loads will fail, causing a reboot required prompt. Be careful here!

    Step #5 – Add RUN_WPP statement to your source file.
    This is actually the most complex part of the initial conversion
    process. For most cases, simply adding the following lines will work:

    RUN_WPP=$(SOURCES) -km -func:KdPrintEx((NULL, LEVEL, MSG, …))

    Note that the above line uses the double-parenthesis. If your
    macro/function doesn’t use double-parenthesis, just use
    single-parenthesis above. Note

    Now, the most-requested item I have had when describing this conversion
    process:

    ---------------------------
    Common compilation errors
    ---------------------------

    errlog.c(86) : error C2065: ‘MyDriverDebugError’ : undeclared identifier
    – See step #1 (including TMH file)

    obj\i386\errlog.tmh() : error : Please define control model via
    WPP_CONTROL_GUIDS or WPP_DEFAULT_CONTROL_GUID macros
    obj\i386\errlog.tmh() : error : don’t forget to call WPP_INIT_TRACING
    and WPP_CLEANUP in your main, DriverEntry or DllInit
    – See step #2 (guid and flag generation)

    BUILD: Linking z:\MyDriver directory
    1>Linking Executable - obj\i386\MyDriver.sys for i386
    1>pnp.obj() : error LNK2019: unresolved external symbol _WppCleanupKm@4
    referenced in function _MyDriverUnload@4
    1>obj\i386\MyDriver.sys() : error LNK1120: 1 unresolved externals
    – See step #3 (WPP_INIT)

    1>Compiling - errlog.c for i386
    1>errlog.c(33) : error C1083: Cannot open include file: ‘errlog.tmh’: No
    such file or directory
    – See step #5 (RUN_WPP in sources)

    ------------
    That’s it!
    ------------

    Now load up TraceView (provided in recent DDKs) for the easiest way to
    enable/disable/view tracing. Other tools allow for more options and/or
    scripting, but TraceView is the best interactive tool I have found out
    there.

    ------------------
    Under the covers
    ------------------

    How does ETW do it’s thing? It’s all based on the __annotation()
    compiler item coupled with WMI tracing (which is fast but requires
    significantly more developer time). Look at the macros and things in
    the DDK’s tools\WppConfig\rev1 directory. I can’t claim to understand
    it all, but it seems to work fairly well.

    The RUN_WPP line causes the WPP preprocessor to run against the files
    listed (typically $(SOURCES)). It goes in and changes any line with the
    noted -func: into a macro based on the template in use (km-default.tpl
    for kernel mode, km-w2k.tpl for win2k compatible kernel mode). As part
    of this process, the static strings from each format are stored in the
    TMH file as__annotation() marks so they go into the resulting private
    symbol file. The remaining arguments are parse by the preprocessor into
    WMI tracing events. Each tracing statement is surrounded by an if()
    block which checks a globals (or two) added to your driver
    automatically. The if() statement gives you the speed when tracing is
    not enabled, the logging using WMI traces gives you speed when tracing
    is enabled because the string isn’t formatted until it is viewed
    (typically by another application/host at lower IRQL). KdPrint() and
    similar have the machine running the code also formatting the strings
    before displaying them. Insert some additional black magic, smoke, and
    mirrors, and you have ETW.

    ------------
    Conclusion
    ------------

    The above text has not been reviewed by any tech writer or other party
    at Microsoft, and everything above is my own personal opinion. I hope
    it’s useful to you, but it may contain errors which make life harder for
    you at times. If so, let me know and I’ll fix it in later postings
    (since I’m keeping the above for later use).

    Cheers,
    .

    -----Original Message-----
    From: Daniel Luethi [mailto:xxxxx@psi.ch]
    Sent: Wednesday, January 28, 2004 12:23 AM
    Subject: Re: problems with DMA transfer with size > 4k

    Henry,

    First thank you for your answer. You’re mentioning Event Tracing for
    Windows (ETW) as a usable tool. I’m not sure if this is a standard
    windows service? Is it the Event Viewer which can be started in:

    My Computer (Right Mouseclick)>Manage>ComputerManagement>System
    Tools>Event Viewer> ?

    I never used this tool, what is it good for? It seems to trace some more
    or less important info, warnings and errors.

    regards
    Daniel

    Henry Gabryjelski wrote:
    > It’s great to hear you found the root cause of the problem. Debug
    > prints which are formatted on the same system that is running the code

    > are always going to affect perf. There are alternatives, however…
    >
    > Please allow me to suggest you look into the use of Event Tracing for
    > Windows (ETW). It offers very quick conversion from any of your
    > current macros/functions, and allows you to selectively enable tracing

    > on FRE builds without causing major slowdowns when not enabled. I’ve
    > used this for all my components since XP, and one or two of the ones
    > in Windows 2000. This allows you to get logs from a customer without
    > shipping a new binary to them, without using a debugger (although
    > that’s an option too), and without the customer being able to decode
    > the log (without you giving the magic decoder ring).
    >
    > ETW is only documented in the DDK currently (I couldn’t find it in
    > MSDN, at least).
    >
    > .
    >
    > -----Original Message-----
    > From: Daniel Luethi [mailto:xxxxx@psi.ch]
    > Sent: Wednesday, January 21, 2004 11:46 PM
    > Subject: Re: problems with DMA transfer with size > 4k
    >
    > Russ, Mats and Martin
    >
    > Thanks for your answers. After a careful look with the PCI snooper (we

    > also use VMetro) I noticed where we loose so much time in the
    transfer:
    > The DbgPrints() commands which I used quite often to watch every step
    > in the driver took really lots of time, I think about 10us each (on a
    > 2GHz P4!). After changing DbgPrint() to KdPrint(()) the driver was
    > free of debug prints if I build it in fre environment. The speed
    > increase was
    > dramatically: We reached 98MB/s (before 20MB/s)! The snooper showed us

    > that the time between two bursts (one burst is actually one page:
    > 1024DW, I think that’s the fastest way) decreased from previously
    > 100us down to 12us (the PCI bus is 33MHz, 32Bit)!
    > So, we’re now really satisfied with that speed, which is pretty close
    > to the theoretical speed. Of course the time between two birsts where
    > we have to load the PCI bus master card again with the new logical
    > address, depends very much on the speed of the PC, but so far it looks

    > good and the need of scatter/gather became less urgent!
    > Actually the driver is now switched to scatter/gather in
    > IoGetDmaAdapter(DevDescr…) kind of a single scatter/gather register.

    > This way I can be sure the user buffer is not copied intermediately.
    >
    > Daniel
    >


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

    You are currently subscribed to ntdev as: xxxxx@midcore.com
    To unsubscribe send a blank email to xxxxx@lists.osr.com</note:>

> ----------

From:
xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
Reply To: xxxxx@lists.osr.com
Sent: Thursday, January 29, 2004 7:45 PM
To: xxxxx@lists.osr.com
Subject: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

How does ETW do it’s thing? It’s all based on the __annotation()
compiler item

Is __annotation() documented somewhere? All VC7 compilers apparently support
it but there is no docs in the latest MSDN and also google doesn’t reveal
anything.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

Good question. I only know about it because I dug my fingers *really*
deep into ETW to figure out how it works. I have never seen it used
outside of ETW, so I wouldn’t even know where to start looking.

Sorry I can’t be useful here,
.

-----Original Message-----
From: Michal Vodicka [mailto:xxxxx@veridicom.cz.nospam]
Sent: Thursday, January 29, 2004 1:14 PM
Subject: RE: ETW Summary (was: RE: problems with DMA transfer with size

4k)


From:
xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
Reply To: xxxxx@lists.osr.com
Sent: Thursday, January 29, 2004 7:45 PM
To: xxxxx@lists.osr.com
Subject: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

How does ETW do it’s thing? It’s all based on the __annotation()
compiler item

Is __annotation() documented somewhere? All VC7 compilers apparently
support it but there is no docs in the latest MSDN and also google
doesn’t reveal anything.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

Good questions, but I won’t answer either-or. :slight_smile:

WPP == early acronymn, some debate over original meaning, I think it was
“Windows Pre Processor”. Obviously not a good name. This is the tool
which pre-processes the source code to create the TMH file and macros
you need to get all the tracing working.

ETW == Event Tracing for Windows. This is less specific, and deals with
the whole process.

Is it possible the documentation is saying that the DDK didn’t support
it until Windows XP? Anyways, the code changes and results when a
driver is built to support Windows 2000 are different. However, if you
do the few things I listed below, it *is* possible to use on Win2k with
some missing or reduced features:

  1. No tracing in DriverEntry().
  2. No tracing in AddDevice() until device object created.
  3. Less-accurate timestamps used for each trace.


  4. The 3790 (Server 2003) DDK definitely contains the required template –
    I found mine at Z:\WINDDK\3790\bin\wppconfig\rev1\km-w2k.tpl. There’s
    also a um-w2k.tpl, but I really don’t know what’s different for
    applications using ETW in Win2k vs WinXP and higher.

    All the above is, again, just my own knowledge as a user of this
    technology. I don’t work on the team who wrote this stuff, I just
    complain to them a lot. :slight_smile:

    .

    -----Original Message-----
    From: Ed Lau [mailto:xxxxx@midcore.com]
    Sent: Thursday, January 29, 2004 11:52 AM
    Subject: Re: ETW Summary (was: RE: problems with DMA transfer with size
    > 4k)

    Henry -

    According to the link you provided below, “WPP software tracing is
    supported on Microsoft Windows XP and later.” However, you mention
    later: “All retail builds of Windows since Windows 2000 include Event
    Tracing for Windows (ETW), and it’s easy to change over from DbgPrintEx,
    KdPrintEx, or almost any other function you are currently using.” Which
    statement is accurate, or are both accurate (that WPP and ETW are not
    necessarily synonymous)?

    Thanks,

    Ed Lau

    ----- Original Message -----
    From: Henry Gabryjelski mailto:xxxxx
    To: Windows System Software Devs Interest List
    mailto:xxxxx
    Sent: Thursday, January 29, 2004 1:45 PM
    Subject: [ntdev] ETW Summary (was: RE: problems with DMA transfer with
    size > 4k)

    Sorry for my short answer, but I’m glad I grabbed your interest in this
    – It’s one topic I love to evangelize because of the time and energy
    it’s saved me. The executive summary is that ETW is an option to
    replace debug prints with minimal developer effort, minimal source code
    changes, and automatic performance benefits. ETW also offers many
    enhanced functionality options, once the initial conversion is
    completed.

    First, I found an MSDN site to start reading from:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ddtools
    /hh/ddtools/st_32pf.asp

    In addition, there is a powerpoint from WinHEC 2003 at the following
    page under “General Driver Information”, “Debugging and Diagnostics”,
    named “Diagnostic Tracing with Event Tracing for Windows and TraceView”:
    http://www.microsoft.com/whdc/winhec/pres03.mspx

    The power point slide provides a great summary of what ETW is all about
    and points to samples in the DDK, while the MSDN site provides a
    step-by-step model to enabling tracing. The rest of this post is
    exceptionally long, as I want to provide a very full answer to what’s so
    great about ETW. (much of the below is taken from one of my internal
    presentations to my group – NT storage.)

    ----------------------------
    ReallyLongDescriptionOfETW
    ----------------------------
    Does this sound familiar to you? You want a checked build, or even a
    few DbgPrints in your driver - but you aren’t going to get it? You can’t
    set up a debugger? You don’t want to give out your private symbols
    file? You’re chasing a bug that goes away when you slow the system down
    (“Heisenbug”)? There is a solution…

    ETW is a low-overhead generic logging mechanism which can be directed to
    many places. All retail builds of Windows since Windows 2000 include
    Event Tracing for Windows (ETW), and it’s easy to change over from
    DbgPrintEx, KdPrintEx, or almost any other function you are currently
    using.

    ETW was designed to address our main problems with previous “solutions”.
    It allows you to ship binaries with logging code left in (IMAPI (cd
    burning service & driver), Redbook, CDROM in XP all use this). It
    allows single machine logging, without requiring a kernel debugger.
    Tracing using ETW does not expose the static text strings in the
    resulting binary trace (More information on this later). Finally, when
    it’s not enabled, ETW uses minimal overhead.

    Protecting your company’s IP is important. With current solutions, many
    developers put function names and significant other information in debug
    prints which simplifies reverse engineering. With ETW, all the static
    portions of a debug print statement are moved to the private symbol
    file. As an added bonus, the pre-processing phase also automatically
    includes the function name, source file name, and line number for each
    of the debug prints. Part of the logging architecture for ETW
    automatically attaches a timestamp to each and every event (instance of
    the debug print being called). So, you get lots of free information
    with less overhead and less “information leakage”.

    Converting to basic ETW usage is easy. The five steps are:
    1) add ‘#include “filename.tmh”’ to each source file.
    2) define a GUID and tracing levels for controlling tracing in your
    driver.
    3) add calls to WPP_INIT_TRACING() in DriverEntry (AddDevice if Win2k
    support required).
    4) add calls to WPP_CLEANUP() in DriverUnload (RemoveDevice if Win2k
    support required).
    5) add RUN_WPP statement to your sources file (use special template for
    Win2k support).
    <note: i will give more details at the end of this long mail.>

    Once you’re up and running with the basic ETW, you can then extend to
    using more advanced functionality, such as easy logging of supported
    “extended” formats. The ones most useful are %!STATUS! (for NTSTATUS
    codes), %!HRESULT! (for HRESULT codes), %!IPADDR!, %!guid!, and
    %!WAITTIME!. Each of these pretty-prints the related items when viewing
    the traces, which saves time tracking down what NTSTATUS 0xC0000305 is
    (STATUS_COPY_PROTECTION_FAILURE).

    Why else use ETW? If you convert your macros (or use a new one) to
    enable LEVEL and FLAG selection, you can enable logging in a more
    fine-tuned way. You can use ETW for both your user-mode and kernel-mode
    components and get a single log with both of their events interleaved.
    You can redirect to the kernel debugger (in XP and higher). As a side
    benefit, it will find those cases where you mismatched the format string
    and argument types.

    The remaining question is “Where should I add tracing?” There is no
    magic here, as it requires the same considerations as any other type of
    debugging help. Conversion of existing debug prints/asserts to remove
    static debug strings from you binaries is a good start. If you’re
    providing a library, providing a good trace statement in every error
    path is also a good idea as it provides excellent benefits to the client
    with minimal overhead. Other areas known to have been traced:
    * Configuration settings
    * Operations that deviate from standard
    * State changes – information and cause
    * Public APIs – input and results
    * Scavenging or cleanup operations
    Of course, you should always avoid tracing anything where your trace
    data may expose security or privacy data, or even where it may appear to
    do so.

    -----------------------------
    In-depth conversion process
    -----------------------------
    This will presume that you are using a macro of the form
    KdPrintEx((component, level, …)). Some notes will be provided for
    where changes are needed to support other macros or functions.

    Step #1 – Adding the new include file.
    For each .C/.C++ file with a debug print, include (after all other
    includes) a file called .tmh. This must be done for each file
    with a debug print, but is suggested for all files. For example, if
    your source file was named “foo.cpp”, then you’d include “foo.tmh”.

    Step #2 – Define a GUID and trace levels Use your favorite GUID
    generator. I use UUIDGEN.EXE or GUIDGEN.EXE.
    Use this GUID in a new header file you include in all your .C files.
    The contents should be simliar to:
    #define WPP_CONTROL_GUIDS <br>
    WPP_DEFINE_CONTROL_GUID(MyDriver,(aaaaaaaa,bbbb,cccc,dddd,eeeeeeeeffff),
    <br> WPP_DEFINE_BIT(MyDriverError) /* bit 0 = 0x00000001 / <br> WPP_DEFINE_BIT(MyDriverWarning) / bit 1 = 0x00000002 / <br> WPP_DEFINE_BIT(RedbookDebugTrace) / bit 2 = 0x00000004 / <br> WPP_DEFINE_BIT(RedbookDebugInfo) / bit 3 = 0x00000008 / <br> WPP_DEFINE_BIT(RedbookDebugD04) / bit 4 = 0x00000010 */ <br> )

    Step #3 – Add call to WPP_INIT_TRACING() in DriverEntry Register for
    ETW in your DriverEntry() routine by calling
    WPP_INIT_TRACING(DriverObject, RegistryPath). See MSDN for
    documentation. If you require your driver to load on Windows 2000, you
    must instead call WPP_INIT_TRACING(DeviceObject, RegistryPath) in you
    AddDevice() routine. Because you cannot get trace statements from your
    driver until this macro is called, it is highly suggested to call it at
    the earliest possible time in your driver.

    Step #4 – Add call to WPP_CLEANUP() in DriverUnload Unregister from ETW
    in you DriverUnload() routine by calling WPP_CLEANUP(DriverObject).
    This is the counterpart to what is done in step 3. See MSDN for
    documentation. If you require your driver to load on Windows 2000, you
    must instead call WPP_CLEANUP(DeviceObject) just before you call
    DeleteDevice() on your device object. Because you cannot get trace
    statements from your driver after this macro is called, it is highly
    recommended to call it at the last possible time.

    NOTE: If you fail to de-register, there are NO compile errors - you
    will have an outstanding reference on your driver object, and subsequent
    loads will fail, causing a reboot required prompt. Be careful here!

    Step #5 – Add RUN_WPP statement to your source file.
    This is actually the most complex part of the initial conversion
    process. For most cases, simply adding the following lines will work:

    RUN_WPP=$(SOURCES) -km -func:KdPrintEx((NULL, LEVEL, MSG, …))

    Note that the above line uses the double-parenthesis. If your
    macro/function doesn’t use double-parenthesis, just use
    single-parenthesis above. Note

    Now, the most-requested item I have had when describing this conversion
    process:

    ---------------------------
    Common compilation errors
    ---------------------------

    errlog.c(86) : error C2065: ‘MyDriverDebugError’ : undeclared identifier
    – See step #1 (including TMH file)

    obj\i386\errlog.tmh() : error : Please define control model via
    WPP_CONTROL_GUIDS or WPP_DEFAULT_CONTROL_GUID macros
    obj\i386\errlog.tmh() : error : don’t forget to call WPP_INIT_TRACING
    and WPP_CLEANUP in your main, DriverEntry or DllInit
    – See step #2 (guid and flag generation)

    BUILD: Linking z:\MyDriver directory
    1>Linking Executable - obj\i386\MyDriver.sys for i386
    1>pnp.obj() : error LNK2019: unresolved external symbol _WppCleanupKm@4
    referenced in function _MyDriverUnload@4
    1>obj\i386\MyDriver.sys() : error LNK1120: 1 unresolved externals
    – See step #3 (WPP_INIT)

    1>Compiling - errlog.c for i386
    1>errlog.c(33) : error C1083: Cannot open include file: ‘errlog.tmh’: No
    such file or directory
    – See step #5 (RUN_WPP in sources)

    ------------
    That’s it!
    ------------

    Now load up TraceView (provided in recent DDKs) for the easiest way to
    enable/disable/view tracing. Other tools allow for more options and/or
    scripting, but TraceView is the best interactive tool I have found out
    there.

    ------------------
    Under the covers
    ------------------

    How does ETW do it’s thing? It’s all based on the __annotation()
    compiler item coupled with WMI tracing (which is fast but requires
    significantly more developer time). Look at the macros and things in
    the DDK’s tools\WppConfig\rev1 directory. I can’t claim to understand
    it all, but it seems to work fairly well.

    The RUN_WPP line causes the WPP preprocessor to run against the files
    listed (typically $(SOURCES)). It goes in and changes any line with the
    noted -func: into a macro based on the template in use (km-default.tpl
    for kernel mode, km-w2k.tpl for win2k compatible kernel mode). As part
    of this process, the static strings from each format are stored in the
    TMH file as__annotation() marks so they go into the resulting private
    symbol file. The remaining arguments are parse by the preprocessor into
    WMI tracing events. Each tracing statement is surrounded by an if()
    block which checks a globals (or two) added to your driver
    automatically. The if() statement gives you the speed when tracing is
    not enabled, the logging using WMI traces gives you speed when tracing
    is enabled because the string isn’t formatted until it is viewed
    (typically by another application/host at lower IRQL). KdPrint() and
    similar have the machine running the code also formatting the strings
    before displaying them. Insert some additional black magic, smoke, and
    mirrors, and you have ETW.

    ------------
    Conclusion
    ------------

    The above text has not been reviewed by any tech writer or other party
    at Microsoft, and everything above is my own personal opinion. I hope
    it’s useful to you, but it may contain errors which make life harder for
    you at times. If so, let me know and I’ll fix it in later postings
    (since I’m keeping the above for later use).

    Cheers,
    .

    -----Original Message-----
    From: Daniel Luethi [mailto:xxxxx@psi.ch]
    Sent: Wednesday, January 28, 2004 12:23 AM
    Subject: Re: problems with DMA transfer with size > 4k

    Henry,

    First thank you for your answer. You’re mentioning Event Tracing for
    Windows (ETW) as a usable tool. I’m not sure if this is a standard
    windows service? Is it the Event Viewer which can be started in:

    My Computer (Right Mouseclick)>Manage>ComputerManagement>System
    Tools>Event Viewer> ?

    I never used this tool, what is it good for? It seems to trace some more
    or less important info, warnings and errors.

    regards
    Daniel

    Henry Gabryjelski wrote:
    > It’s great to hear you found the root cause of the problem. Debug
    > prints which are formatted on the same system that is running the code

    > are always going to affect perf. There are alternatives, however…
    >
    > Please allow me to suggest you look into the use of Event Tracing for
    > Windows (ETW). It offers very quick conversion from any of your
    > current macros/functions, and allows you to selectively enable tracing

    > on FRE builds without causing major slowdowns when not enabled. I’ve
    > used this for all my components since XP, and one or two of the ones
    > in Windows 2000. This allows you to get logs from a customer without
    > shipping a new binary to them, without using a debugger (although
    > that’s an option too), and without the customer being able to decode
    > the log (without you giving the magic decoder ring).
    >
    > ETW is only documented in the DDK currently (I couldn’t find it in
    > MSDN, at least).
    >
    > .
    >
    > -----Original Message-----
    > From: Daniel Luethi [mailto:xxxxx@psi.ch]
    > Sent: Wednesday, January 21, 2004 11:46 PM
    > Subject: Re: problems with DMA transfer with size > 4k
    >
    > Russ, Mats and Martin
    >
    > Thanks for your answers. After a careful look with the PCI snooper (we

    > also use VMetro) I noticed where we loose so much time in the
    transfer:
    > The DbgPrints() commands which I used quite often to watch every step
    > in the driver took really lots of time, I think about 10us each (on a
    > 2GHz P4!). After changing DbgPrint() to KdPrint(()) the driver was
    > free of debug prints if I build it in fre environment. The speed
    > increase was
    > dramatically: We reached 98MB/s (before 20MB/s)! The snooper showed us

    > that the time between two bursts (one burst is actually one page:
    > 1024DW, I think that’s the fastest way) decreased from previously
    > 100us down to 12us (the PCI bus is 33MHz, 32Bit)!
    > So, we’re now really satisfied with that speed, which is pretty close
    > to the theoretical speed. Of course the time between two birsts where
    > we have to load the PCI bus master card again with the new logical
    > address, depends very much on the speed of the PC, but so far it looks

    > good and the need of scatter/gather became less urgent!
    > Actually the driver is now switched to scatter/gather in
    > IoGetDmaAdapter(DevDescr…) kind of a single scatter/gather register.

    > This way I can be sure the user buffer is not copied intermediately.
    >
    > Daniel
    >


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

    You are currently subscribed to ntdev as: xxxxx@midcore.com To
    unsubscribe send a blank email to xxxxx@lists.osr.com</note:></mailto:xxxxx></mailto:xxxxx>

> ----------

From:
xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
Reply To: xxxxx@lists.osr.com
Sent: Friday, January 30, 2004 6:30 AM
To: xxxxx@lists.osr.com
Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

All the above is, again, just my own knowledge as a user of this
technology. I don’t work on the team who wrote this stuff, I just
complain to them a lot. :slight_smile:

Complaining helps to improve things so I add mine :wink:

I tried if it is possible to use it for realtime traces displayed by DbgView
or SoftICE. The result: two total computer freezes. Note no my driver was
involved, I just tried to use kernel logger and DDK user mode tools only.
Seems as security hole for me.

What I did (XP SP0):

  • ran “tracelog -start -kd -rt b” as suggested in WinHEC presentation
  • ran “tracelog -flush” in the first case and “tracelog -stop” in the second
  • cursed and pressed reboot because nothing else was possible

In the first case SoftICE was loaded so I tried it again to see if there
isn’t some conflict. WinDbg wasn’t involved at all.

Well, I’m glad my ability to crash any software with no effort was confirmed
but somewhat I’m not encouraged to use it. How many years it took until
windbg was usable?

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

I’d bet money your SoftICE crash has something to do with Alberto’s
hooking scheme.

=^)

Chuck

----- Original Message -----
From: “Michal Vodicka”
To: “Windows System Software Devs Interest List”
Sent: Friday, January 30, 2004 1:41 PM
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

> > ----------
> > From:
> > xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
> > Reply To: xxxxx@lists.osr.com
> > Sent: Friday, January 30, 2004 6:30 AM
> > To: xxxxx@lists.osr.com
> > Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA transfer
> > with size > 4k)
> >
> > All the above is, again, just my own knowledge as a user of this
> > technology. I don’t work on the team who wrote this stuff, I just
> > complain to them a lot. :slight_smile:
> >
> Complaining helps to improve things so I add mine :wink:
>
> I tried if it is possible to use it for realtime traces displayed by
DbgView
> or SoftICE. The result: two total computer freezes. Note no my driver
was
> involved, I just tried to use kernel logger and DDK user mode tools
only.
> Seems as security hole for me.
>
> What I did (XP SP0):
> - ran “tracelog -start -kd -rt b” as suggested in WinHEC presentation
> - ran “tracelog -flush” in the first case and “tracelog -stop” in the
second
> - cursed and pressed reboot because nothing else was possible
>
> In the first case SoftICE was loaded so I tried it again to see if
there
> isn’t some conflict. WinDbg wasn’t involved at all.
>
> Well, I’m glad my ability to crash any software with no effort was
confirmed
> but somewhat I’m not encouraged to use it. How many years it took
until
> windbg was usable?
>
> Best regards,
>
> Michal Vodicka
> STMicroelectronics Design and Application s.r.o.
> [michal.vodicka@st.com, http:://www.st.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@cbatson.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

Well, it was the first thing coming into my mind :wink: That’s why I tried it
again without SoftICE loaded and the result was the same. Something is
wrong if system can be frozen using supplied user mode application.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]


From: xxxxx@cbatson.com[SMTP:xxxxx@cbatson.com]
Reply To: xxxxx@lists.osr.com
Sent: Friday, January 30, 2004 7:48 AM
To: xxxxx@lists.osr.com
Subject: Re: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

I’d bet money your SoftICE crash has something to do with Alberto’s
hooking scheme.

=^)

Chuck

----- Original Message -----
From: “Michal Vodicka”
> To: “Windows System Software Devs Interest List”
> Sent: Friday, January 30, 2004 1:41 PM
> Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> with size > 4k)
>
>
> > > ----------
> > > From:
> > > xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
> > > Reply To: xxxxx@lists.osr.com
> > > Sent: Friday, January 30, 2004 6:30 AM
> > > To: xxxxx@lists.osr.com
> > > Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA transfer
> > > with size > 4k)
> > >
> > > All the above is, again, just my own knowledge as a user of this
> > > technology. I don’t work on the team who wrote this stuff, I just
> > > complain to them a lot. :slight_smile:
> > >
> > Complaining helps to improve things so I add mine :wink:
> >
> > I tried if it is possible to use it for realtime traces displayed by
> DbgView
> > or SoftICE. The result: two total computer freezes. Note no my driver
> was
> > involved, I just tried to use kernel logger and DDK user mode tools
> only.
> > Seems as security hole for me.
> >
> > What I did (XP SP0):
> > - ran “tracelog -start -kd -rt b” as suggested in WinHEC presentation
> > - ran “tracelog -flush” in the first case and “tracelog -stop” in the
> second
> > - cursed and pressed reboot because nothing else was possible
> >
> > In the first case SoftICE was loaded so I tried it again to see if
> there
> > isn’t some conflict. WinDbg wasn’t involved at all.
> >
> > Well, I’m glad my ability to crash any software with no effort was
> confirmed
> > but somewhat I’m not encouraged to use it. How many years it took
> until
> > windbg was usable?
> >
> > Best regards,
> >
> > Michal Vodicka
> > STMicroelectronics Design and Application s.r.o.
> > [michal.vodicka@st.com, http:://www.st.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@cbatson.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: michal.vodicka@st.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

Michal, can you describe it a bit more precisely ? I can try it here and see
what happens. Also, if you’re running on an SMP, does it still happen if you
switch it down to single processor mode ?

Alberto.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
Sent: Friday, January 30, 2004 3:52 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Well, it was the first thing coming into my mind :wink: That’s why I tried it
again without SoftICE loaded and the result was the same. Something is
wrong if system can be frozen using supplied user mode application.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]


From: xxxxx@cbatson.com[SMTP:xxxxx@cbatson.com]
Reply To: xxxxx@lists.osr.com
Sent: Friday, January 30, 2004 7:48 AM
To: xxxxx@lists.osr.com
Subject: Re: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

I’d bet money your SoftICE crash has something to do with Alberto’s
hooking scheme.

=^)

Chuck

----- Original Message -----
From: “Michal Vodicka”
> To: “Windows System Software Devs Interest List”
> Sent: Friday, January 30, 2004 1:41 PM
> Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> with size > 4k)
>
>
> > > ----------
> > > From:
> > > xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
> > > Reply To: xxxxx@lists.osr.com
> > > Sent: Friday, January 30, 2004 6:30 AM
> > > To: xxxxx@lists.osr.com
> > > Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA transfer
> > > with size > 4k)
> > >
> > > All the above is, again, just my own knowledge as a user of this
> > > technology. I don’t work on the team who wrote this stuff, I just
> > > complain to them a lot. :slight_smile:
> > >
> > Complaining helps to improve things so I add mine :wink:
> >
> > I tried if it is possible to use it for realtime traces displayed by
> DbgView
> > or SoftICE. The result: two total computer freezes. Note no my driver
> was
> > involved, I just tried to use kernel logger and DDK user mode tools
> only.
> > Seems as security hole for me.
> >
> > What I did (XP SP0):
> > - ran “tracelog -start -kd -rt b” as suggested in WinHEC presentation
> > - ran “tracelog -flush” in the first case and “tracelog -stop” in the
> second
> > - cursed and pressed reboot because nothing else was possible
> >
> > In the first case SoftICE was loaded so I tried it again to see if
> there
> > isn’t some conflict. WinDbg wasn’t involved at all.
> >
> > Well, I’m glad my ability to crash any software with no effort was
> confirmed
> > but somewhat I’m not encouraged to use it. How many years it took
> until
> > windbg was usable?
> >
> > Best regards,
> >
> > Michal Vodicka
> > STMicroelectronics Design and Application s.r.o.
> > [michal.vodicka@st.com, http:://www.st.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@cbatson.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: michal.vodicka@st.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@compuware.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

The contents of this e-mail are intended for the named addressee only. It
contains information that may be confidential. Unless you are the named
addressee or an authorized designee, you may not copy or use it, or disclose
it to anyone else. If you received it in error please notify us immediately
and then destroy it.

Alberto, I believe it has nothing to do with SoftICE. As I already wrote, I
tried it when SI wasn’t loaded. Now I tried it again on another computer (XP
SP1) with one CPU only and again, total freeze. Well, there was also SI
installed but wasn’t started.

How to reproduce problem (again):

tracelog -start -kd -rt b
tracelog -stop

with tools from Windows DDK build 3790. Don’t forget to flush disk caches
before trying.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]


From:
xxxxx@compuware.com[SMTP:xxxxx@compuware.com]
Reply To: xxxxx@lists.osr.com
Sent: Friday, January 30, 2004 11:19 PM
To: xxxxx@lists.osr.com
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Michal, can you describe it a bit more precisely ? I can try it here and
see
what happens. Also, if you’re running on an SMP, does it still happen if
you
switch it down to single processor mode ?

Alberto.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
Sent: Friday, January 30, 2004 3:52 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Well, it was the first thing coming into my mind :wink: That’s why I tried it
again without SoftICE loaded and the result was the same. Something is
wrong if system can be frozen using supplied user mode application.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

> ----------
> From: xxxxx@cbatson.com[SMTP:xxxxx@cbatson.com]
> Reply To: xxxxx@lists.osr.com
> Sent: Friday, January 30, 2004 7:48 AM
> To: xxxxx@lists.osr.com
> Subject: Re: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> with size > 4k)
>
> I’d bet money your SoftICE crash has something to do with Alberto’s
> hooking scheme.
>
> =^)
>
> Chuck
>
> ----- Original Message -----
> From: “Michal Vodicka”
> > To: “Windows System Software Devs Interest List”
> > Sent: Friday, January 30, 2004 1:41 PM
> > Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> > with size > 4k)
> >
> >
> > > > ----------
> > > > From:
> > > > xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
> > > > Reply To: xxxxx@lists.osr.com
> > > > Sent: Friday, January 30, 2004 6:30 AM
> > > > To: xxxxx@lists.osr.com
> > > > Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA transfer
> > > > with size > 4k)
> > > >
> > > > All the above is, again, just my own knowledge as a user of this
> > > > technology. I don’t work on the team who wrote this stuff, I just
> > > > complain to them a lot. :slight_smile:
> > > >
> > > Complaining helps to improve things so I add mine :wink:
> > >
> > > I tried if it is possible to use it for realtime traces displayed by
> > DbgView
> > > or SoftICE. The result: two total computer freezes. Note no my driver
> > was
> > > involved, I just tried to use kernel logger and DDK user mode tools
> > only.
> > > Seems as security hole for me.
> > >
> > > What I did (XP SP0):
> > > - ran “tracelog -start -kd -rt b” as suggested in WinHEC presentation
> > > - ran “tracelog -flush” in the first case and “tracelog -stop” in the
> > second
> > > - cursed and pressed reboot because nothing else was possible
> > >
> > > In the first case SoftICE was loaded so I tried it again to see if
> > there
> > > isn’t some conflict. WinDbg wasn’t involved at all.
> > >
> > > Well, I’m glad my ability to crash any software with no effort was
> > confirmed
> > > but somewhat I’m not encouraged to use it. How many years it took
> > until
> > > windbg was usable?
> > >
> > > Best regards,
> > >
> > > Michal Vodicka
> > > STMicroelectronics Design and Application s.r.o.
> > > [michal.vodicka@st.com, http:://www.st.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@cbatson.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: michal.vodicka@st.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@compuware.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> The contents of this e-mail are intended for the named addressee only. It
> contains information that may be confidential. Unless you are the named
> addressee or an authorized designee, you may not copy or use it, or
> disclose
> it to anyone else. If you received it in error please notify us
> immediately
> and then destroy it.
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: michal.vodicka@st.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

FWIW, I saw the same thing when I tried to switch from debug prints over to
ETW a few months ago. This was on a Sony Vaio notebook using a FireWire
debug connection. Things would work for a short time and then the machine
would lock up, requiring a power cycle to reboot. I never had time to dig
into the problem because I had a deadline to meet. I haven’t revisited ETW
since then, though I’ve been thinking about it lately.

Chris Myers

-----Original Message-----
From: Michal Vodicka [mailto:xxxxx@veridicom.cz.nospam]
Sent: Friday, January 30, 2004 5:50 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA
transfer with size > 4k)

Alberto, I believe it has nothing to do with SoftICE. As I
already wrote, I tried it when SI wasn’t loaded. Now I tried
it again on another computer (XP
SP1) with one CPU only and again, total freeze. Well, there
was also SI installed but wasn’t started.

How to reproduce problem (again):

tracelog -start -kd -rt b
tracelog -stop

with tools from Windows DDK build 3790. Don’t forget to flush
disk caches before trying.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

I’ll get our QA guys to try it.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
Sent: Friday, January 30, 2004 5:50 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Alberto, I believe it has nothing to do with SoftICE. As I already wrote, I
tried it when SI wasn’t loaded. Now I tried it again on another computer (XP
SP1) with one CPU only and again, total freeze. Well, there was also SI
installed but wasn’t started.

How to reproduce problem (again):

tracelog -start -kd -rt b
tracelog -stop

with tools from Windows DDK build 3790. Don’t forget to flush disk caches
before trying.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]


From:
xxxxx@compuware.com[SMTP:xxxxx@compuware.com]
Reply To: xxxxx@lists.osr.com
Sent: Friday, January 30, 2004 11:19 PM
To: xxxxx@lists.osr.com
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Michal, can you describe it a bit more precisely ? I can try it here and
see
what happens. Also, if you’re running on an SMP, does it still happen if
you
switch it down to single processor mode ?

Alberto.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
Sent: Friday, January 30, 2004 3:52 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Well, it was the first thing coming into my mind :wink: That’s why I tried it
again without SoftICE loaded and the result was the same. Something is
wrong if system can be frozen using supplied user mode application.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

> ----------
> From: xxxxx@cbatson.com[SMTP:xxxxx@cbatson.com]
> Reply To: xxxxx@lists.osr.com
> Sent: Friday, January 30, 2004 7:48 AM
> To: xxxxx@lists.osr.com
> Subject: Re: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> with size > 4k)
>
> I’d bet money your SoftICE crash has something to do with Alberto’s
> hooking scheme.
>
> =^)
>
> Chuck
>
> ----- Original Message -----
> From: “Michal Vodicka”
> > To: “Windows System Software Devs Interest List”
> > Sent: Friday, January 30, 2004 1:41 PM
> > Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> > with size > 4k)
> >
> >
> > > > ----------
> > > > From:
> > > > xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
> > > > Reply To: xxxxx@lists.osr.com
> > > > Sent: Friday, January 30, 2004 6:30 AM
> > > > To: xxxxx@lists.osr.com
> > > > Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA transfer
> > > > with size > 4k)
> > > >
> > > > All the above is, again, just my own knowledge as a user of this
> > > > technology. I don’t work on the team who wrote this stuff, I just
> > > > complain to them a lot. :slight_smile:
> > > >
> > > Complaining helps to improve things so I add mine :wink:
> > >
> > > I tried if it is possible to use it for realtime traces displayed by
> > DbgView
> > > or SoftICE. The result: two total computer freezes. Note no my driver
> > was
> > > involved, I just tried to use kernel logger and DDK user mode tools
> > only.
> > > Seems as security hole for me.
> > >
> > > What I did (XP SP0):
> > > - ran “tracelog -start -kd -rt b” as suggested in WinHEC presentation
> > > - ran “tracelog -flush” in the first case and “tracelog -stop” in the
> > second
> > > - cursed and pressed reboot because nothing else was possible
> > >
> > > In the first case SoftICE was loaded so I tried it again to see if
> > there
> > > isn’t some conflict. WinDbg wasn’t involved at all.
> > >
> > > Well, I’m glad my ability to crash any software with no effort was
> > confirmed
> > > but somewhat I’m not encouraged to use it. How many years it took
> > until
> > > windbg was usable?
> > >
> > > Best regards,
> > >
> > > Michal Vodicka
> > > STMicroelectronics Design and Application s.r.o.
> > > [michal.vodicka@st.com, http:://www.st.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@cbatson.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: michal.vodicka@st.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@compuware.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> The contents of this e-mail are intended for the named addressee only. It
> contains information that may be confidential. Unless you are the named
> addressee or an authorized designee, you may not copy or use it, or
> disclose
> it to anyone else. If you received it in error please notify us
> immediately
> and then destroy it.
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: michal.vodicka@st.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@compuware.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

The contents of this e-mail are intended for the named addressee only. It
contains information that may be confidential. Unless you are the named
addressee or an authorized designee, you may not copy or use it, or disclose
it to anyone else. If you received it in error please notify us immediately
and then destroy it.

People here say that if this is a bus level hang, SoftICE won’t popup
anyway. You can try an NMI switch, but even then it’s a bit iffy. If you
have access to a PCI bus analyzer or to a logic analyzer, I would maybe use
it to try to figure out what’s going on. Reminds me a hang we used to have
with one our Imagine boards, which we eventually tracked down to two IACK
cycles back to back (the chip hung while trying to negotiate those), but it
took a fair amount of time sifting through logic analyzer logs.

Alberto.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
Sent: Friday, January 30, 2004 5:50 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Alberto, I believe it has nothing to do with SoftICE. As I already wrote, I
tried it when SI wasn’t loaded. Now I tried it again on another computer (XP
SP1) with one CPU only and again, total freeze. Well, there was also SI
installed but wasn’t started.

How to reproduce problem (again):

tracelog -start -kd -rt b
tracelog -stop

with tools from Windows DDK build 3790. Don’t forget to flush disk caches
before trying.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]


From:
xxxxx@compuware.com[SMTP:xxxxx@compuware.com]
Reply To: xxxxx@lists.osr.com
Sent: Friday, January 30, 2004 11:19 PM
To: xxxxx@lists.osr.com
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Michal, can you describe it a bit more precisely ? I can try it here and
see
what happens. Also, if you’re running on an SMP, does it still happen if
you
switch it down to single processor mode ?

Alberto.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
Sent: Friday, January 30, 2004 3:52 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Well, it was the first thing coming into my mind :wink: That’s why I tried it
again without SoftICE loaded and the result was the same. Something is
wrong if system can be frozen using supplied user mode application.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

> ----------
> From: xxxxx@cbatson.com[SMTP:xxxxx@cbatson.com]
> Reply To: xxxxx@lists.osr.com
> Sent: Friday, January 30, 2004 7:48 AM
> To: xxxxx@lists.osr.com
> Subject: Re: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> with size > 4k)
>
> I’d bet money your SoftICE crash has something to do with Alberto’s
> hooking scheme.
>
> =^)
>
> Chuck
>
> ----- Original Message -----
> From: “Michal Vodicka”
> > To: “Windows System Software Devs Interest List”
> > Sent: Friday, January 30, 2004 1:41 PM
> > Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> > with size > 4k)
> >
> >
> > > > ----------
> > > > From:
> > > > xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
> > > > Reply To: xxxxx@lists.osr.com
> > > > Sent: Friday, January 30, 2004 6:30 AM
> > > > To: xxxxx@lists.osr.com
> > > > Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA transfer
> > > > with size > 4k)
> > > >
> > > > All the above is, again, just my own knowledge as a user of this
> > > > technology. I don’t work on the team who wrote this stuff, I just
> > > > complain to them a lot. :slight_smile:
> > > >
> > > Complaining helps to improve things so I add mine :wink:
> > >
> > > I tried if it is possible to use it for realtime traces displayed by
> > DbgView
> > > or SoftICE. The result: two total computer freezes. Note no my driver
> > was
> > > involved, I just tried to use kernel logger and DDK user mode tools
> > only.
> > > Seems as security hole for me.
> > >
> > > What I did (XP SP0):
> > > - ran “tracelog -start -kd -rt b” as suggested in WinHEC presentation
> > > - ran “tracelog -flush” in the first case and “tracelog -stop” in the
> > second
> > > - cursed and pressed reboot because nothing else was possible
> > >
> > > In the first case SoftICE was loaded so I tried it again to see if
> > there
> > > isn’t some conflict. WinDbg wasn’t involved at all.
> > >
> > > Well, I’m glad my ability to crash any software with no effort was
> > confirmed
> > > but somewhat I’m not encouraged to use it. How many years it took
> > until
> > > windbg was usable?
> > >
> > > Best regards,
> > >
> > > Michal Vodicka
> > > STMicroelectronics Design and Application s.r.o.
> > > [michal.vodicka@st.com, http:://www.st.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@cbatson.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: michal.vodicka@st.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@compuware.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> The contents of this e-mail are intended for the named addressee only. It
> contains information that may be confidential. Unless you are the named
> addressee or an authorized designee, you may not copy or use it, or
> disclose
> it to anyone else. If you received it in error please notify us
> immediately
> and then destroy it.
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: michal.vodicka@st.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@compuware.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

The contents of this e-mail are intended for the named addressee only. It
contains information that may be confidential. Unless you are the named
addressee or an authorized designee, you may not copy or use it, or disclose
it to anyone else. If you received it in error please notify us immediately
and then destroy it.

I think you may be hitting a known issue. Basically, if you try to
redirect to a non-existant kernel debugger, you can do this. I don’t
know if SoftICE knows how to interpret the traces, so I’d suggest using
KD for this until they support this feature. The debugger must
specifically support this feature, as the events are not formatted by
the host which is executing the code. Therefore, the loading of the
symbols to find/parse/format the messages must be handled by the
debugger.

The workaround is very easy: don’t send it to the kernel debugger unless
you have kd/windbg hooked up and have booted your system with the /debug
switch in boot.ini.

Hth,
.

-----Original Message-----
From: Moreira, Alberto [mailto:xxxxx@compuware.com]
Sent: Friday, January 30, 2004 2:20 PM
Subject: RE: ETW Summary (was: RE: problems with DMA transfer with size

4k)

Michal, can you describe it a bit more precisely ? I can try it here and
see what happens. Also, if you’re running on an SMP, does it still
happen if you switch it down to single processor mode ?

Alberto.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
Sent: Friday, January 30, 2004 3:52 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Well, it was the first thing coming into my mind :wink: That’s why I tried
it again without SoftICE loaded and the result was the same. Something
is wrong if system can be frozen using supplied user mode application.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]


From: xxxxx@cbatson.com[SMTP:xxxxx@cbatson.com]
Reply To: xxxxx@lists.osr.com
Sent: Friday, January 30, 2004 7:48 AM
To: xxxxx@lists.osr.com
Subject: Re: [ntdev] ETW Summary (was: RE: problems with DMA
transfer
with size > 4k)

I’d bet money your SoftICE crash has something to do with Alberto’s
hooking scheme.

=^)

Chuck

----- Original Message -----
From: “Michal Vodicka”
> To: “Windows System Software Devs Interest List”
> Sent: Friday, January 30, 2004 1:41 PM
> Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> with size > 4k)
>
>
> > > ----------
> > > From:
> > > xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com
> > >]
> > > Reply To: xxxxx@lists.osr.com
> > > Sent: Friday, January 30, 2004 6:30 AM
> > > To: xxxxx@lists.osr.com
> > > Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA
> > > transfer with size > 4k)
> > >
> > > All the above is, again, just my own knowledge as a user of this
> > > technology. I don’t work on the team who wrote this stuff, I just

> > > complain to them a lot. :slight_smile:
> > >
> > Complaining helps to improve things so I add mine :wink:
> >
> > I tried if it is possible to use it for realtime traces displayed by
> DbgView
> > or SoftICE. The result: two total computer freezes. Note no my
> > driver
> was
> > involved, I just tried to use kernel logger and DDK user mode tools
> only.
> > Seems as security hole for me.
> >
> > What I did (XP SP0):
> > - ran “tracelog -start -kd -rt b” as suggested in WinHEC
> > presentation
> > - ran “tracelog -flush” in the first case and “tracelog -stop” in
> > the
> second
> > - cursed and pressed reboot because nothing else was possible
> >
> > In the first case SoftICE was loaded so I tried it again to see if
> there
> > isn’t some conflict. WinDbg wasn’t involved at all.
> >
> > Well, I’m glad my ability to crash any software with no effort was
> confirmed
> > but somewhat I’m not encouraged to use it. How many years it took
> until
> > windbg was usable?
> >
> > Best regards,
> >
> > Michal Vodicka
> > STMicroelectronics Design and Application s.r.o.
> > [michal.vodicka@st.com, http:://www.st.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@cbatson.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: michal.vodicka@st.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@compuware.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

The contents of this e-mail are intended for the named addressee only.
It contains information that may be confidential. Unless you are the
named addressee or an authorized designee, you may not copy or use it,
or disclose it to anyone else. If you received it in error please notify
us immediately and then destroy it.

Why to spend more time with MS bug? I just worked on computer where SoftICE
was never installed and reproduced problem there on the first attempt.

My first impression about ETW isn’t very well. It seems overly complicated
to use for normal debugging; clumsy and bloated (as eventlog is). What is
worse, it is unstable. Trace support must be quite reliable; it is used to
solve problems and not to create even more. Maybe several years later.

The only really interesting thing is possibility to separate traces from
binary and it would be nice if compiler support for it is documented. In
embedded environment I use seperate segment for traces which is then
extracted from binary. Maybe it would be also possible with VC but what EWT
uses seems more elegant.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]


From:
xxxxx@compuware.com[SMTP:xxxxx@compuware.com]
Reply To: xxxxx@lists.osr.com
Sent: Monday, February 02, 2004 5:54 PM
To: xxxxx@lists.osr.com
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

People here say that if this is a bus level hang, SoftICE won’t popup
anyway. You can try an NMI switch, but even then it’s a bit iffy. If you
have access to a PCI bus analyzer or to a logic analyzer, I would maybe
use
it to try to figure out what’s going on. Reminds me a hang we used to have
with one our Imagine boards, which we eventually tracked down to two IACK
cycles back to back (the chip hung while trying to negotiate those), but
it
took a fair amount of time sifting through logic analyzer logs.

Alberto.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
Sent: Friday, January 30, 2004 5:50 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Alberto, I believe it has nothing to do with SoftICE. As I already wrote,
I
tried it when SI wasn’t loaded. Now I tried it again on another computer
(XP
SP1) with one CPU only and again, total freeze. Well, there was also SI
installed but wasn’t started.

How to reproduce problem (again):

tracelog -start -kd -rt b
tracelog -stop

with tools from Windows DDK build 3790. Don’t forget to flush disk caches
before trying.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

> ----------
> From:
> xxxxx@compuware.com[SMTP:xxxxx@compuware.com]
> Reply To: xxxxx@lists.osr.com
> Sent: Friday, January 30, 2004 11:19 PM
> To: xxxxx@lists.osr.com
> Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> with size > 4k)
>
> Michal, can you describe it a bit more precisely ? I can try it here and
> see
> what happens. Also, if you’re running on an SMP, does it still happen if
> you
> switch it down to single processor mode ?
>
> Alberto.
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
> Sent: Friday, January 30, 2004 3:52 PM
> To: Windows System Software Devs Interest List
> Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> with size > 4k)
>
>
> Well, it was the first thing coming into my mind :wink: That’s why I tried
it
> again without SoftICE loaded and the result was the same. Something is
> wrong if system can be frozen using supplied user mode application.
>
> Best regards,
>
> Michal Vodicka
> STMicroelectronics Design and Application s.r.o.
> [michal.vodicka@st.com, http:://www.st.com]
>
> > ----------
> > From: xxxxx@cbatson.com[SMTP:xxxxx@cbatson.com]
> > Reply To: xxxxx@lists.osr.com
> > Sent: Friday, January 30, 2004 7:48 AM
> > To: xxxxx@lists.osr.com
> > Subject: Re: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> > with size > 4k)
> >
> > I’d bet money your SoftICE crash has something to do with Alberto’s
> > hooking scheme.
> >
> > =^)
> >
> > Chuck
> >
> > ----- Original Message -----
> > From: “Michal Vodicka”
> > > To: “Windows System Software Devs Interest List”
> > > Sent: Friday, January 30, 2004 1:41 PM
> > > Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> > > with size > 4k)
> > >
> > >
> > > > > ----------
> > > > > From:
> > > > >
> xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
> > > > > Reply To: xxxxx@lists.osr.com
> > > > > Sent: Friday, January 30, 2004 6:30 AM
> > > > > To: xxxxx@lists.osr.com
> > > > > Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA
> transfer
> > > > > with size > 4k)
> > > > >
> > > > > All the above is, again, just my own knowledge as a user of this
> > > > > technology. I don’t work on the team who wrote this stuff, I just
> > > > > complain to them a lot. :slight_smile:
> > > > >
> > > > Complaining helps to improve things so I add mine :wink:
> > > >
> > > > I tried if it is possible to use it for realtime traces displayed by
> > > DbgView
> > > > or SoftICE. The result: two total computer freezes. Note no my
> driver
> > > was
> > > > involved, I just tried to use kernel logger and DDK user mode tools
> > > only.
> > > > Seems as security hole for me.
> > > >
> > > > What I did (XP SP0):
> > > > - ran “tracelog -start -kd -rt b” as suggested in WinHEC
> presentation
> > > > - ran “tracelog -flush” in the first case and “tracelog -stop” in
> the
> > > second
> > > > - cursed and pressed reboot because nothing else was possible
> > > >
> > > > In the first case SoftICE was loaded so I tried it again to see if
> > > there
> > > > isn’t some conflict. WinDbg wasn’t involved at all.
> > > >
> > > > Well, I’m glad my ability to crash any software with no effort was
> > > confirmed
> > > > but somewhat I’m not encouraged to use it. How many years it took
> > > until
> > > > windbg was usable?
> > > >
> > > > Best regards,
> > > >
> > > > Michal Vodicka
> > > > STMicroelectronics Design and Application s.r.o.
> > > > [michal.vodicka@st.com, http:://www.st.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@cbatson.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: michal.vodicka@st.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@compuware.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> >
> > The contents of this e-mail are intended for the named addressee only.
> It
> > contains information that may be confidential. Unless you are the named
> > addressee or an authorized designee, you may not copy or use it, or
> > disclose
> > it to anyone else. If you received it in error please notify us
> > immediately
> > and then destroy it.
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: michal.vodicka@st.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@compuware.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> The contents of this e-mail are intended for the named addressee only. It
> contains information that may be confidential. Unless you are the named
> addressee or an authorized designee, you may not copy or use it, or
> disclose
> it to anyone else. If you received it in error please notify us
> immediately
> and then destroy it.
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: michal.vodicka@st.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

Am I wrong, or it looks like Chuck lost his bet ? Around here, that means a
free round of donuts. :slight_smile:

Alberto.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
Sent: Monday, February 02, 2004 1:12 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Why to spend more time with MS bug? I just worked on computer where SoftICE
was never installed and reproduced problem there on the first attempt.

My first impression about ETW isn’t very well. It seems overly complicated
to use for normal debugging; clumsy and bloated (as eventlog is). What is
worse, it is unstable. Trace support must be quite reliable; it is used to
solve problems and not to create even more. Maybe several years later.

The only really interesting thing is possibility to separate traces from
binary and it would be nice if compiler support for it is documented. In
embedded environment I use seperate segment for traces which is then
extracted from binary. Maybe it would be also possible with VC but what EWT
uses seems more elegant.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]


From:
xxxxx@compuware.com[SMTP:xxxxx@compuware.com]
Reply To: xxxxx@lists.osr.com
Sent: Monday, February 02, 2004 5:54 PM
To: xxxxx@lists.osr.com
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

People here say that if this is a bus level hang, SoftICE won’t popup
anyway. You can try an NMI switch, but even then it’s a bit iffy. If you
have access to a PCI bus analyzer or to a logic analyzer, I would maybe
use
it to try to figure out what’s going on. Reminds me a hang we used to have
with one our Imagine boards, which we eventually tracked down to two IACK
cycles back to back (the chip hung while trying to negotiate those), but
it
took a fair amount of time sifting through logic analyzer logs.

Alberto.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
Sent: Friday, January 30, 2004 5:50 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Alberto, I believe it has nothing to do with SoftICE. As I already wrote,
I
tried it when SI wasn’t loaded. Now I tried it again on another computer
(XP
SP1) with one CPU only and again, total freeze. Well, there was also SI
installed but wasn’t started.

How to reproduce problem (again):

tracelog -start -kd -rt b
tracelog -stop

with tools from Windows DDK build 3790. Don’t forget to flush disk caches
before trying.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

> ----------
> From:
> xxxxx@compuware.com[SMTP:xxxxx@compuware.com]
> Reply To: xxxxx@lists.osr.com
> Sent: Friday, January 30, 2004 11:19 PM
> To: xxxxx@lists.osr.com
> Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> with size > 4k)
>
> Michal, can you describe it a bit more precisely ? I can try it here and
> see
> what happens. Also, if you’re running on an SMP, does it still happen if
> you
> switch it down to single processor mode ?
>
> Alberto.
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Michal Vodicka
> Sent: Friday, January 30, 2004 3:52 PM
> To: Windows System Software Devs Interest List
> Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> with size > 4k)
>
>
> Well, it was the first thing coming into my mind :wink: That’s why I tried
it
> again without SoftICE loaded and the result was the same. Something is
> wrong if system can be frozen using supplied user mode application.
>
> Best regards,
>
> Michal Vodicka
> STMicroelectronics Design and Application s.r.o.
> [michal.vodicka@st.com, http:://www.st.com]
>
> > ----------
> > From: xxxxx@cbatson.com[SMTP:xxxxx@cbatson.com]
> > Reply To: xxxxx@lists.osr.com
> > Sent: Friday, January 30, 2004 7:48 AM
> > To: xxxxx@lists.osr.com
> > Subject: Re: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> > with size > 4k)
> >
> > I’d bet money your SoftICE crash has something to do with Alberto’s
> > hooking scheme.
> >
> > =^)
> >
> > Chuck
> >
> > ----- Original Message -----
> > From: “Michal Vodicka”
> > > To: “Windows System Software Devs Interest List”
> > > Sent: Friday, January 30, 2004 1:41 PM
> > > Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
> > > with size > 4k)
> > >
> > >
> > > > > ----------
> > > > > From:
> > > > >
> xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
> > > > > Reply To: xxxxx@lists.osr.com
> > > > > Sent: Friday, January 30, 2004 6:30 AM
> > > > > To: xxxxx@lists.osr.com
> > > > > Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA
> transfer
> > > > > with size > 4k)
> > > > >
> > > > > All the above is, again, just my own knowledge as a user of this
> > > > > technology. I don’t work on the team who wrote this stuff, I just
> > > > > complain to them a lot. :slight_smile:
> > > > >
> > > > Complaining helps to improve things so I add mine :wink:
> > > >
> > > > I tried if it is possible to use it for realtime traces displayed by
> > > DbgView
> > > > or SoftICE. The result: two total computer freezes. Note no my
> driver
> > > was
> > > > involved, I just tried to use kernel logger and DDK user mode tools
> > > only.
> > > > Seems as security hole for me.
> > > >
> > > > What I did (XP SP0):
> > > > - ran “tracelog -start -kd -rt b” as suggested in WinHEC
> presentation
> > > > - ran “tracelog -flush” in the first case and “tracelog -stop” in
> the
> > > second
> > > > - cursed and pressed reboot because nothing else was possible
> > > >
> > > > In the first case SoftICE was loaded so I tried it again to see if
> > > there
> > > > isn’t some conflict. WinDbg wasn’t involved at all.
> > > >
> > > > Well, I’m glad my ability to crash any software with no effort was
> > > confirmed
> > > > but somewhat I’m not encouraged to use it. How many years it took
> > > until
> > > > windbg was usable?
> > > >
> > > > Best regards,
> > > >
> > > > Michal Vodicka
> > > > STMicroelectronics Design and Application s.r.o.
> > > > [michal.vodicka@st.com, http:://www.st.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@cbatson.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: michal.vodicka@st.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@compuware.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> >
> > The contents of this e-mail are intended for the named addressee only.
> It
> > contains information that may be confidential. Unless you are the named
> > addressee or an authorized designee, you may not copy or use it, or
> > disclose
> > it to anyone else. If you received it in error please notify us
> > immediately
> > and then destroy it.
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: michal.vodicka@st.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@compuware.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> The contents of this e-mail are intended for the named addressee only. It
> contains information that may be confidential. Unless you are the named
> addressee or an authorized designee, you may not copy or use it, or
> disclose
> it to anyone else. If you received it in error please notify us
> immediately
> and then destroy it.
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: michal.vodicka@st.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@compuware.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

The contents of this e-mail are intended for the named addressee only. It
contains information that may be confidential. Unless you are the named
addressee or an authorized designee, you may not copy or use it, or disclose
it to anyone else. If you received it in error please notify us immediately
and then destroy it.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]


From:
xxxxx@windows.microsoft.com[SMTP:xxxxx@windows.microsoft.com]
Reply To: xxxxx@lists.osr.com
Sent: Monday, February 02, 2004 7:10 PM
To: xxxxx@lists.osr.com
Subject: RE:[ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

I think you may be hitting a known issue. Basically, if you try to
redirect to a non-existant kernel debugger, you can do this. I don’t
know if SoftICE knows how to interpret the traces, so I’d suggest using
KD for this until they support this feature. The debugger must
specifically support this feature, as the events are not formatted by
the host which is executing the code. Therefore, the loading of the
symbols to find/parse/format the messages must be handled by the
debugger.

Makes sense. Could you explain how exactly works? I’m mainly interested if
debugger is called synchronously i.e. if trace call returns after it is
displayed by debugger. For debugging it is necessary to see all traces which
were done before, for example, breakpoint was hit, RtlAssert() called or
BSOD catched by debugger.

The workaround is very easy: don’t send it to the kernel debugger unless
you have kd/windbg hooked up and have booted your system with the /debug
switch in boot.ini.

Well, it would be OK if there are no traces without kernel debugger. OS hang
is unacceptable. Sorry, but it gives bad impression about whole ETW quality.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

> ----------

From:
xxxxx@compuware.com[SMTP:xxxxx@compuware.com]
Reply To: xxxxx@lists.osr.com
Sent: Monday, February 02, 2004 7:15 PM
To: xxxxx@lists.osr.com
Subject: RE: [ntdev] ETW Summary (was: RE: problems with DMA transfer
with size > 4k)

Am I wrong, or it looks like Chuck lost his bet ? Around here, that means
a
free round of donuts. :slight_smile:

He said something about money :wink: Let’s forgive it if he promises to not
kill people who use hooking :wink:

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]