Microsoft KB Archive/247226

{|
 * width="100%"|

HOWTO: Fully Uninstall a Performance Monitor Extension

 * }

Q247226

-

The information in this article applies to:


 * Microsoft Windows NT Server
 * Microsoft Windows NT Workstation
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Professional

-

IMPORTANT: This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.

SUMMARY
This article discusses how to fully uninstall a custom performance monitor extension. The article also describes some of the implications when only the counter names and descriptions are removed with unlodctr.

MORE INFORMATION
The documentation in the Platform SDK describes in detail how to install and uninstall performance monitor extension:


 * Creating the application's performance key.
 * Adding counter names and descriptions to the registry.
 * Removing counter names and descriptions from the registry.
 * Creating other registry entries.

However, an important step to uninstall a performance monitor extension is to remove the application's performance key. For the author of a performance monitor extension, the steps required to properly remove the extension are:


 * 1) Use unlodctr to remove the counter names and descriptions.
 * 2) Remove the application's performance key. See the information in the Platform SDK documentation about "Creating the application's performance key" for specifics.

NOTE: The order is important. Unlodctr cannot unload the performance monitor extension without the associated registry key preset.

Symptoms that occur as a result of leaving the application's performance key in the registry after unloading counter names and descriptions may vary depending on how the extension is implemented. However, one typical symptom is extra Event 1008 messages added to the Application Event Log by the Perflib source. When the performance monitor reads all counters for the first time, the extension's Open procedure is called. A typical task for the Open procedure is to read what range of object indexes it supports from the registry. These index values are stored in the First Counter, First Help, Last Counter, and Last Help registry values under the application's performance key. This fails the Open procedure call because unlodctr deletes these values, which in turn causes Windows NT to post Event 1008 to the Application Event Log.

As a user of a vendor's software, after uninstalling, if you find Event 1008 in the Application Event Log for the Perflib source, which indicates that the software's performance extension is failing the Open procedure, you should contact the vendor of the product so the vendor can correct its uninstall procedure. However, you may be able to correct the situation yourself.

WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

For information about how to edit the registry, view the "Changing Keys and Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT or Windows 2000, you should also update your Emergency Repair Disk (ERD).


 * 1) To completely remove a performance monitor extension, first identify the service name of the product that supported the custom counters.
 * 2) Use RegEdt32.exe to traverse to the following subkey:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

where refers to the service name in step 1.
 * 1) Select the Performance subkey and from the Edit menu, click Delete. This action deletes the Performance subkey and all its values.