Exctrlst Examples |
|
Run Tool |
The following procedure uses Exctrlst to find the performance counter objects installed on a remote computer, RK-USER-16. You can use this procedure to determine whether the performance features are installed correctly on a user's system, and you can use the information as an indirect indication of whether a service is installed on the user's system.
In this case, a user is complaining that they cannot monitor the Terminal Services performance counters. You have verified that the counters do not appear in System Monitor.
RK-USER-16
, and then click
Refresh.The Extensible Performance Counter box now lists all of the performance counters installed on the remote computer. In this case, the Terminal Services service, TermService service and its DLL, perfts.dll, do not appear in the list. This indicates that Terminal Services performance counters are not installed on the user's computer.
Tip
At the command prompt, type:
regfind "Performance" -n -p
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services >
PerfServices.txt
This command creates a file called PerfServices.txt with the names of all services that have Performance subkeys in the registry. It also lists occurrences of the Disable Performance Counters registry entry and its value.
The following procedure determines why the performance object for a fictitious service, Reskit, does not appear in System Monitor. This procedure compares performance object lists from Exctrlst and Showperf, a Windows Support Tool. Because Showperf only displays objects that load and run properly, objects that appear in Exctrlst but not in Showperf are likely to have errors.
In this case, there are no events pertaining to the Reskit service.
If a counter does not appear in the Exctrlst display, then it is not installed or properly registered in the system. In this case, the Reskit service is listed in Exctrlst, and its performance counter DLL, Reskit.dll, is listed in its proper location.
In this case, when you click the Reskit service item, the Performance Counters Enabled check box is checked, indicating that the Reskit service performance DLL passed the system's run-time reliability tests.
In this case, the object does not appear in the list. This indicates that the Reskit performance DLL passed the basic reliability tests, but does not load properly in Showperf. This rare situation occurs when a DLL has a fault that is not evident in basic testing but appears later, such as when the service is stressed by high use or retrieves extreme data values not anticipated in the program design.
Counter DLLs might also be enabled but not load properly in Showperf because one or more of the run-time reliability tests have been turned off, or because the system is prevented from disabling performance counters that fail its tests. To check for this occurrence, find the value of the Configuration Flags registry entry (HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\Configuration Flags). The default value, which permits the system to disable faulty counters, is 0x10.
For information about the Configuration Flags registry entry, see the Registry Reference at the Microsoft Windows Resource Kits Web site (http://go.microsoft.com/fwlink/?LinkId=289).
The following procedure re-enables the performance counter DLL for Reskit, a fictitious service.
To protect the performance monitoring capabilities of the system, the Performance Library (Perflib) tests all performance DLLs when they load and disables performance DLLs that fail its run-time reliability tests. In this case, when the system found that the Reskit performance DLL, Rkperf.dll, generated an exception, it disabled the DLL. The developer repaired Rkperf.dll, but it is still disabled in the system.
This procedures uses Exctrlst to re-enable the performance counters for the Reskit service.
When Showperf starts, it attempts to load and run all installed performance counter DLLs. It lists the performance objects that successfully loaded and ran. In this case, the performance objects created by Rkperf.dll appear in Showperf, indicating that the DLL repair was successful and the Reskit performance objects and counters are enabled and ready for use.
Tip
At the command prompt, type:
regfind "Disable Performance Counters"
-n -p HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services >
Disabled.txt
This command creates a file called Disabled.txt with the names of all services that have the registry entry. You can then search the file for entries with a value of 1.
This procedure comprises one method for determining which performance objects are associated with a service.
Typeperf /q > All.txt
This command saves the performance counter list in the All.txt file.
Typeperf /q >
No_Svc.txt
This command saves the revised performance counter list in the No_Svc.txt file. This time, the disabled performance counters do not appear in the list.