How to enable WPP tracing for a component at boot time?


Been away for a while , busy with lotsa interesting online services projects ( my “new” group ) .  I’ll see if I can blog about any of those interesting tidbits.. in the meantime.


WPP tracing is all over the place in Win7 – a quick count of registered providers shows 672 available providers  via “logman .exe query providers”


 


We can choose a random one to pick on today – like BITS ( background intelligent transfer services ) .


Here we can view the available flags for this provider.


 


C:\>logman query providers “BITS Service Trace”


 


Provider                                 GUID


——————————————————————————-


BITS Service Trace                       {4A8AAA94-CFC4-46A7-8E4E-17BC45608F0A}


 


Value               Keyword              Description


——————————————————————————-


0x0000000000000001  LogFlagInfo          LogFlagInfo Flag


0x0000000000000002  LogFlagWarning       LogFlagWarning Flag


0x0000000000000004  LogFlagError         LogFlagError Flag


0x0000000000000008  LogFlagFunction      LogFlagFunction Flag


0x0000000000000010  LogFlagRefCount      LogFlagRefCount Flag


0x0000000000000020  LogFlagSerialize     LogFlagSerialize Flag


0x0000000000000040  LogFlagDownload      LogFlagDownload Flag


0x0000000000000080  LogFlagTask          LogFlagTask Flag


0x0000000000000100  LogFlagLock          LogFlagLock Flag


0x0000000000000200  LogFlagService       LogFlagService Flag


0x0000000000000400  LogFlagDataBytes     LogFlagDataBytes Flag


0x0000000000000800  LogFlagTransferDetails LogFlagTransferDetails Flag


0x0000000000001000  LogFlagPeer          LogFlagPeer Flag


 


PID                 Image


——————————————————————————-


0x00000190


0x00000190


 


 


The command completed successfully.


 


But let’s get to the point. How do you enabled a trace log and maintain it across reboots?


 


You can follow the reg setting keys\values documented here – http://msdn.microsoft.com/en-us/library/aa363687(VS.85).aspx


 


The primary key  is  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger


You can also download the DDK and use tracelog.exe  with the /addautologger command see http://msdn.microsoft.com/en-us/library/dd852200.aspx


 


Luckily Logman.exe , which is included in the OS, has a nifty CLI switch to enable this.


The trick is to preface the log session name  with “autosession\”.


 


C:\Windows\system32>logman create trace “autosession\SpatsBITSTrace” -p “BITS Service Trace” -o SpatsBITSTrace.etl


The command completed successfully.


 


 


You can add the parameters for buffers, flags and other from the cmd line as well.


 


This creates the following reg values and automatically sets them under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\SpatsBITSTrace\{4A8AAA94-CFC4-46A7-8E4E-17BC45608F0A}


 


 


Just like any  tracing session you can stop it via:


 


                logman stop “SpatsBITSTrace” -ets


 


You can delete this tracing logger permanently ( so it will not  restart on the next boot ) via


 


                logman delete “autosession\ SpatsBITSTrace” 


 


 


Hope it helps someone .


 


spat

Comments (2)

  1. Nilesh says:

    It helped a great deal.Thanks a lot

  2. SpatDSG says:

    Wow – good to see this helped someone!