Windows Server 2008 R2 Reports PerfNet Error in Application Log on machine with more than 64 Processors

Applies to: Windows Server 2008 R2 DatacenterWindows Server 2008 R2 EnterpriseWindows Server 2008 R2 Standard

Symptoms


Consider the following scenario:

  • Windows Server 2008 R2 installed on a machine with more than 64 logical processors
  • An application uses Windows Management Instrumentation (WMI) to query performance data related to logical processors (the following WMI class is an example: Win32_PerfFormattedData_PerfOS_Processor.)
Under these conditions, the performance query may fail.

Additionally, the following error may be logged in the Application Event Log after each query.

Log Name: Application
Source: Microsoft-Windows-PerfNet
Date: 3/30/201 10:15:29 AM
Event ID: 2006
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: <computer name>
Description:Unable to read Server Queue performance data from the Server service. The first four bytes (DWORD) of the Data section contains the status code, the second four bytes contains the IOSB.Status and the next four bytes contains the IOSB.Information.Unable to read Server Queue performance data from the Server service. The first four bytes (DWORD) of the Data section contains the status code, the second four bytes contains the IOSB.Status and the next four bytes contains the IOSB.Information.

Cause


This issue occurs because the performance "Server Work Queues" counter provider PerfNet.dll does not calculate the correct number of logical processors on a machine with more than 64 processors and this results in an insufficient buffer size during the query.

Resolution


Hotfix 2733563 (http://support.microsoft.com/kb/2733563) has been released to address this logical processor calculation issue.