Windows Tools

Exctrlst Examples

Overview | Notes | UI | Examples | Related Tools Run Tool

Example 1: Find the performance objects installed on a remote computer.
Example 2: Find a missing performance object.
Example 3: Re-enable performance counters.
Example 4: Find the performance objects for a service.

Example 1: Find the performance objects installed on a remote computer.

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.

  1. Start Event Viewer, connect to the RK-USER-16 computer, and search the Application Log for events recorded by Perflib. In this case, none of the events report a problem with the Terminal Services counters.
  2. Start Exctrlst.
  3. In the Machine Name box, type RK-USER-16 , and then click Refresh.
  4. In the Sort Order section, click Service.

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


Example 2: Find a missing performance object

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.

  1. Check the Application Log in Event Viewer for events recorded by Perflib. When a counter DLL fails the system's reliability tests or does not install properly, Perflib records errors in the log.
  2. In this case, there are no events pertaining to the Reskit service.

  3. Use Exctrlst to verify that the counter is installed on the system.
  4. 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.

  5. Use Exctrlst to determine whether the counter DLL for the Reskit service is disabled.
  6. 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.

  7. Use Showperf to load the performance counters on the system. Then, look for the Reskit performance object in the Showperf Object drop-down list.
  8. 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).


Example 3: Re-enable performance counters

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.

  1. Start Exctrlst.
  2. In the Extensible Performance Counters list, click the Reskit service.
  3. Click to select the Performance Counters Enabled check box.
  4. Click Refresh.
  5. Use Showperf to verify that the counter DLL loads and runs properly.
  6. 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


Example 4: Find the performance objects for a service.

This procedure comprises one method for determining which performance objects are associated with a service.

  1. To list all performance counters that are enabled and operating properly on the system, use Typeperf, a tool included in Windows XP Professional. At the command prompt, type Typeperf /q > All.txt
  2. This command saves the performance counter list in the All.txt file.

  3. To disable the performance counters for the service, use Exctrlst.
  4. Run Typeperf again. At the command prompt, type Typeperf /q > No_Svc.txt
  5. 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.

  6. Use a comparison tool, such as Fc, to compare the output from the Typeperf runs. The counters that are missing from the No_Svc.txt file are those associated with the service.
  7. Use Exctrlst to re-enable the counters for use.