Reloading the .NET performance counters

On my laptop running XP SP2, I noticed that Process Explorer wasn't highlighting .NET processes anymore. Not only that, when I went to the options panel to configure the process highlighting, the .NET option was grayed out.

I sent a note to the tool's author, Mark Russinovich, who was nice enough to respond within a few hours, saying that his tool checks for the presence of .NET by looking for the .NET CLR Memory performance object.

Sure enough, that performance object was missing from my system when I loaded Perfmon -- as were all of the .NET performance counters.

I have no idea what happened to them -- my system has gone through a fair amount of turmoil (including having numerous beta versions of XP SP2 installed), so anything could have done it. The good news is that it was easy to fix: start the command prompt (from an administrator account), and type:

 unlodctr .NETFramework
lodctr c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\corperfmonsymbols.ini

In my case, the unlodctr command to unload the performance counters probably wasn't necessary, since none of them seemed to be there. But it's probably a good idea anyway. The lodctr command (substitute the path to your Windows directory) loads the .NET performance counters.

After that, everything worked.