If you use the ATL Server performance counter libraries, you may run into a problem on Vista and WS08. The ATL libraries don’t play well with the updates to Windows Resource Protection. WRP enforces restrictions on the registry to prevent corruption of performance counters. ATL breaks these rules and tries to update the registry directly.
There is a workaround to the issue that is outlined in Q933241.
To avoid this problem, the recommended way to add counters is through the lodctr tool or the API LoadPerfCounterTextStrings. See Adding Performance Counters.
If you are really ambitious, ATL Server code has been released as shared source. I haven’t looked at the code or the project but there may be an opportunity to change the way ATL loads perf counters in the future: http://blogs.msdn.com/vcblog/archive/2007/01/19/atl-server-visual-c-shared-source-software.aspx