Event ID 1019 — Performance Library Availability

02/02/2010

8 minutes to read

In this article

Applies To: Windows Server 2008

Performance counters, including those built in to the operating system and those provided by non-Microsoft vendors, are combined in the Performance Library. Performance monitoring applications such as Windows Reliability and Performance Monitor use the Performance Library to identify available counters and map to counter providers. Errors accessing the Performance Library may result in application errors when expected data cannot be found, or when expected data providers are unavailable.

Event Details

Product:

Windows Operating System

ID:

1019

Source:

Microsoft-Windows-Perflib

Version:

6.0

Symbolic Name:

PERFLIB_INVALID_DEFINITION_BLOCK

Message:

A definition field in an object returned by Extensible Counter DLL "%1!s!" for the "%2!s!" service was not correct. The sum of the definitions block lengths in the object definition structures did not match the size specified in the object definition header. The performance data returned by this counter DLL will not be returned in the Perf Data Block. The first four bytes (DWORD) of the Data section contains the object title index of the unsupported object.

Diagnose

This error might be caused by one of the following conditions:

A non-Microsoft DLL caused the error.

The list of counters is corrupt.

The Remote Registry service is not running on a remote system.

The File and Printer Sharing firewall exception is not enabled on a remote system running Windows Vista.

The application is running as a user with insufficient privileges.

If a Windows system error code containing four or five digits is included, you can find the explanation of the error code on the Web at http://go.microsoft.com/fwlink/?LinkID=83027. This information can help you identify the correct resolution.

A non-Microsoft DLL caused the error

If the error references a non-Microsoft DLL, follow the steps in the section titled "Contact a vendor" to obtain a newer copy of the DLL file.

The list of counters is corrupt

If the performance counter could not unload the strings for the specified service, the registry might be corrupted. To correct this problem, follow the steps in the section titled "Rebuild the list of available counters."

The Remote Registry service is not running on a remote system

In order to collect performance counters remotely, the Remote Registry service must be running on the destination system.

Membership in the destination system's local Administrators group is required to change service settings.

In the navigation tree, expand Services and Applications and click Services.

In the Services list, scroll down and click Remote Registry.

Check to see if the status of the Remote Registry service is Started. If it is not, follow the steps in the section titled "Enable the Remote Registry service" to resolve the error.

The File and Printer Sharing firewall exception is not enabled on a remote system running Windows Vista

On systems running Windows Vista, the File and Printer Sharing firewall exception must be enabled on the destination system.

Membership in the destination computer's local Administrators group is required to change firewall settings.

To check File and Printer Sharing firewall exception settings:

On the destination system, click Start and then click Control Panel.

In the Control Panel search box, type firewall.

In the search results, double-click Windows Firewall.

In Windows Firewall, click Change settings.

On the Exceptions tab, check to see if File and Printer Sharing is selected. If it is not, follow the steps in the section titled "Enable the File and Printer Sharing firewall exception on a remote system running Windows Vista" to resolve the error.

The application is running as a user with insufficient privileges

To view performance counters, a user must be a member of the local Performance Monitor Users group, Performance Log Users group, Administrators group, or equivalent. Applications that run as a user or system account with insufficient privileges may not be able to load performance counters correctly. Follow the steps in the section titled "Run the application as a user with sufficient privileges" to identify a resolution.

Resolve

To resolve this issue, use the resolution that corresponds to the cause you identified in the Diagnose section. After performing the resolution, see the Verify section to confirm that the feature is operating properly

Cause

Resolution

A non-Microsoft DLL caused the error

Contact a vendor

The list of counters is corrupt

Rebuild the list of performance counters

A required DLL is disabled

Re-enable a required DLL

The application is running as a user with insufficient privileges

Run the application as a user with sufficient privileges

The File and Printer Sharing firewall exception is not enabled

Enable the File and Printer Sharing firewall exception on a remote system running Windows Vista

The Remote Registry service is not running on a remote system

Enable the Remote Registry service

Contact a vendor

Contact the vendor who provided the performance counter DLLs. If operating system DLLs generated this error, contact Microsoft Customer Service and Support. For more information, see http://go.microsoft.com/fwlink/?LinkID=102491.

Rebuild the list of performance counters

Membership in the local Administrators group is required to complete this procedure.

To rebuild the list of counters in the registry:

Click Start, expand All Programs, and expand Accessories.

Right-click Command Prompt, and then click Run as administrator.

At the command prompt, type lodctr /r, and then press ENTER.

Re-enable a required DLL

Membership in the local Administrators group is required to complete this procedure.

To enable a performance library DLL:

Click Start, click All Programs, and then click Accessories.

Right-click Command Prompt, and then click Run as administrator.

At the command prompt, type lodctr /e:<DLL name> and then press ENTER, where <DLL name> is the name of the library, for example "PerfOS". The DLL name is found in the event message details.

Run the application as a user with sufficient privileges

By default, an application runs with the same privileges as the user who started it. You can configure services to run as the local system account or as a specific user. You can also start an application as Administrator, but in Windows Vista or Windows Server 2008 with User Account Control enabled, you must confirm that you want to start the application each time it runs if it is configured to run as Administrator.

Consider running services that collect performance counter data as the local system account to resolve privilege issues.

If for security reasons you do not want to run the application or service as the local system account, you can add the user the application runs as to the Performance Log Users group and assign the group the Log on as a Batch Job user right to enable performance counter collection each time the application runs.

Membership in the destination computer's local Administrators group is required to complete these procedures.

In the list of groups, right-click Performance Log Users, and then click Add to Group.

On the General tab, click Add.

Type the name of the user you want to add, or click Advanced to search the directory for a user.

When you have finished adding users, click OK, and click OK again to close the Performance Log Users property page.

Assign the Log on as a batch job user right to the Performance Log Users group

In order for members of the Performance Log Users group to initiate data logging or modify Data Collector Sets, the group must first be assigned the Log on as a batch job user right. To assign this user right, use the Local Security Policy snap-in in Microsoft Management Console (MMC).

To assign the Log on as a batch job user right to the Performance Log Users group:

Click Start, click in the Start Search box, type secpol.msc, and then press ENTER. The Local Security Policy snap-in will open in Microsoft Management Console.

In the navigation pane, expand Local Policies and click User Rights Assignment.

In the console pane, right-click Log on as a batch job and then click Properties.

In the navigation tree, expand Services and Applications and click Services.

In the Services list, right-click Remote Registry, and then click Start.

Verify

You can use Windows Reliability and Performance Monitor to verify that netowkr performance counters are properly collected and displayed in a Performance Monitor graph. In addition, you can use the typeperf command to get a list of the available counters on the local system.

Membership in the local Administrators group is required to complete these procedures.

View counters in Performance Monitor

To view counters in Performance Monitor:

On the computer where you want to view counters, click Start. In the Start Search text box, type perfmon.exe, and then press ENTER.

In the navigation pane, expand Monitoring Tools, and then click Performance Monitor.

Click the Add button to open a list of available performance counters.

In the Add Counters dialog box, you can click Help for more information on adding counters. When you have finished adding counters to the list, click OK.

Verify that the performance counters you selected are displayed in the Performance Monitor graph.

View a list of counters using the typeperf command

To view a list of counters at the command prompt:

Click Start, click All Programs, and click Accessories. Right-click Command Prompt, and click Run as administrator.