Microsoft KB Archive/924449

= FIX: You may experience various problems when native user-mode or kernel-model applications or drivers run on a Dual-Core Intel Itanium 2 Processor 9000 Series-based computer that is running Windows Server 2003 or Windows Server 2003 with SP1 =

Article ID: 924449

Article Last Modified on 6/27/2007

-

APPLIES TO

 Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems Microsoft Windows Server 2003 Service Pack 1, when used with:  Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems

 Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems 

-

<div class="notice_section">

Notice
''Microsoft distributes Microsoft Windows Server 2003 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous Windows Server 2003 fix release.''

<div class="summary_section">

This article describes the following about this hotfix release:
 * The issues that are fixed by this hotfix package
 * The prerequisites for installing the hotfix package
 * Information about whether you must restart the computer after you install the hotfix package
 * Information about whether the hotfix package is replaced by any other hotfix package
 * Information about whether you must make any registry changes
 * The files that are contained in the hotfix package

<div class="symptoms_section">

SYMPTOMS
You have Windows Server 2003 or Windows Server 2003 with Service Pack 1 (SP1) running on a Dual-Core Intel Itanium 2 Processor 9000 Series-based computer. When native user-mode or kernel-mode applications or drivers run on this computer, you may experience various problems. For example, the stack may be corrupted, and then illegal instruction exceptions may occur. Additionally, you may experience random code execution.

This problem occurs if the following conditions are true:
 * The applications and drivers are compiled to run natively on the Dual-Core Intel Itanium 2 Processor 9000 Series-based platform.
 * The applications and drivers were created by using the compiler that is included with one of the following programs:
 * The Windows Server 2003 Device Driver Kit (DDK)
 * The Windows Server 2003 SP1 DDK
 * The Windows Server 2003 Software Development Kit (SDK)
 * The Windows Server 2003 SP1 SDK
 * The Windows Server 2003 R2 SDK

<div class="cause_section">

CAUSE
This problem occurs because a specific sequence of instructions that is related to speculation is interrupted by a page fault.

<div class="resolution_section">

Hotfix information
A supported hotfix is now available from Microsoft. However, this hotfix is intended to correct only the problem that this article describes. Apply this hotfix only to systems that are experiencing this specific problem.

To resolve this problem, submit a request to Microsoft Online Customer Services to obtain the hotfix. To submit an online request to obtain the hotfix, visit the following Microsoft Web site:

http://go.microsoft.com/?linkid=6294451

Note If additional issues occur or any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. To create a separate service request, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support

You should apply this hotfix to the system on which you use the compilers that are listed in the &quot;Symptoms&quot; section to compile the applications and drivers. These applications and drivers can be either cross-compiled from the x86 platform or natively compiled.

If you use Microsoft Visual Studio 2005 to compile these drivers and applications, you should not apply this hotfix. Additionally, if you notice that your drivers and applications do not have this problem, you should not apply this hotfix on the system on which you compile these drivers and applications.

Note Microsoft Visual Studio .NET 2002 does not include an Itanium architecture-based compiler. For more information, visit the following Microsoft Developer Network (MSDN) Web site:

http://msdn2.microsoft.com/en-us/library/ms952405.aspx

Additionally, if you develop the applications in Windows Server 2003 for Itanium-based systems, you must use the Windows Server 2003 Service Pack 1 SDK. Microsoft now only supports the Windows Server 2003 Service Pack 1 SDK.

Vendors who use the compilers that are listed in the &quot;Symptoms&quot; section to compile applications or drivers should follow these steps:
 * 1) Apply the hotfix and scripts.
 * 2) Run the command file and script.
 * 3) Based on the script results, recompile any affected applications or drivers.
 * 4) Tell customers that they must have these recompiled binaries if the customers use the applications or drivers on Dual-Core Intel Itanium 2 Processor 9000 Series-based computers.
 * 5) Distribute any recompiled applications or drivers to the customers.

Finally, vendors should use this compiler hotfix for all future hotfixes and changes to their current and future products. If vendors do not apply this hotfix, a change to the source code for a hotfix or changes to add new functionality may cause the compilers to create a vulnerable sequence of instructions. Vendors should use this hotfix until Microsoft releases the next version of the supported DDK and SDK. This version is expected to be the Windows Server Code Name &quot;Longhorn&quot; Windows Development Kit (WDK).

Prerequisites
You must have the following components installed before you apply this hotfix:
 * Windows Server 2003 SP1
 * Windows Server 2003 SP1 DDK, Windows Server 2003 SP1 SDK, or Windows Server 2003 R2 SDK

For more information, click the following article number to view the article in the Microsoft Knowledge Base:

889100 How to obtain the latest service pack for Windows Server 2003

Restart information
You must restart the computer after you apply this hotfix.

Hotfix replacement information
This hotfix does not replace any other hotfixes.

File information
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

Note Two versions of the hotfix files are included in the hotfix. The x86-based hotfix file is for the x86 cross-compiler. The IA-64 based hotfix file is for the Itanium native compiler.

Microsoft does not plan to release a Windows Server 2003 Service Pack 2 (SP2) DDK or a Windows Server 2003 SP2 SDK. Microsoft will only support this hotfix for the Windows Server 2003 SP1 DDK, the Windows Server 2003 SP1 SDK, and the Windows Server 2003 R2 SDK until Microsoft releases the Windows Server &quot;Longhorn&quot; DDK and the Windows Server &quot;Longhorn&quot; SDK.

How to use this hotfix
You must determine whether this problem affects your applications or your drivers on Dual-Core Intel Itanium 2 Processor-based systems. If this problem affects your applications or your drivers, apply this hotfix on the system on which you compile these applications and drivers. Then, recompile the applications or the drivers.

Requirements to use the checking scripts
You must have the following tools and files to use the checking scripts:  The Microsoft Disassembler 1.50 tool (Msdis150.dll)

When you use the default setting to install the Windows Server 2003 SP1 SDK or the Windows Server 2003 R2 SDK, the Microsoft Disassembler 1.50 tool is installed. By default, the Microsoft Disassembler 1.50 tool is installed in the following folder:

C:\Program Files\Microsoft Platform SDK\Bin\win64

</li> The Microsoft C/C++ Optimizing Compiler for IA-64

When you use the default setting to install the Windows Server 2003 SP1 SDK, the Windows Server 2003 SP1 DDK, or the Windows Server 2003 R2 SDK, you also install the Microsoft C/C++ Optimizing Compiler for IA-64.</li> The .cmd files that are included in the hotfix package

These .cmd file scripts determine whether your applications or your drivers experience the problem.</li></ul>

How to use the checking scripts
To determine whether your applications or drivers are affected, follow these steps:
 * 1) Create a folder on the hard disk. These steps assume that the folder name is C2UPDATE.
 * 2) Open the Windows Server 2003 DDK and SDK Update folder that you specify when you apply this hotfix.
 * 3) Copy the VSW#500862.cmd file and the VSW#500862.js file from the Windows Server 2003 DDK and SDK Update folder to the C2UPDATE folder.

Note The VSW#500862.cmd file dumps the disassembly of the files that you specify in the parameter list. The VSW#500862.js file scans the disassembly that the VSW#500862.cmd file creates for the specific vulnerable set of instructions.
 * 1) Copy all the files of your application or your driver to the C2UPDATE folder.
 * 2) Locate all the .pdb files that can generate a disassembly for your application or driver, and then copy these .pdb files to the C2UPDATE folder.
 * 3) Locate the C2UPDATE folder in the build environment.

In the Windows Server 2003 SP1 SDK, click Start, point to All Programs, point to Microsoft Platform SDK for Windows Server 2003 SP1, point to Open Build Environment Window, point to Windows Server 2003 64-bit Build Environment, and then click Set Win Svr 2003 IA64 Build Env (Debug) or click Set Win Svr 2003 IA64 Build Env (Retail).
 * 1) At the command prompt, type VSW#500862.cmd.

Note  represents the list of files for which you want the VSW#500862.cmd script to dump the disassembly. Use white space to delimit the file names. Additionally, include the file name extension for each file.

First, the VSW#500862.cmd script creates a disassembly .cod file. The disassembly .cod file will be approximately 20 times the size of the file that the VSW#500862.cmd script processes.

Then, the VSW#500862.cmd script calls the VSW#500862.js script. The VSW#500862.js script scans the disassembly for functions that contain the specific vulnerable set of instructions. When the scan is completed, the VSW#500862.cmd script displays the output to the screen. You may receive information that resembles the following: <pre class="fixed_text">C:\C2Update>vsw#500862.cmd win32k.sys win23k.sys


 * win32k.sys ***

win32k.sys: 20000001FF0290D0:.ThreadUnlock1

win32k.sys: 20000001FF23B0F0:.?bPolyBezierTo@EPATHOBJ@@QEAAHPEAVEXFORMOBJ@@PEAU_POINTL@@K@Z

win32k.sys: 20000001FF2402D0:.?vSetClip@EWNDOBJ@@QEAAXPEAVREGION@@VERECTL@@@Z

win32k.sys: 20000001FF2B9040:.?bTextToPathWorkhorse@ESTROBJ@@QEAAHAEAVEPATHOBJ@@H@Z

win32k.sys: 20000001FF453110:.vCheckForSingularXform


 * win23k.sys ***

win23k.sys: 20000001FF0290D0:.ThreadUnlock1

win23k.sys: 20000001FF23B0F0:.?bPolyBezierTo@EPATHOBJ@@QEAAHPEAVEXFORMOBJ@@PEAU_POINTL@@K@Z

win23k.sys: 20000001FF2402D0:.?vSetClip@EWNDOBJ@@QEAAXPEAVREGION@@VERECTL@@@Z

win23k.sys: 20000001FF2B9040:.?bTextToPathWorkhorse@ESTROBJ@@QEAAHAEAVEPATHOBJ@@H@Z

win23k.sys: 20000001FF453110:.vCheckForSingularXform Notes
 * The VSW#500862.cmd script sequentially disassembles, scans, and outputs the result for each file that you specify in the  parameter. The script does not process a subsequent file in the   parameter until the script processes the previous file.
 * When the VSW#500862.cmd script creates the disassembly and performs subsequent scanning, the process may take lots of time. Additionally, the process may cause almost 100 percent CPU utilization of a single processor. Therefore, do not type CTRL-C or use the Windows Task Manager to stop the VSW#500862.cmd script or the VSW#500862.js script until the disassembly for the last file in the  is completed.

For more information about how to use the VSW#500862.cmd script and the VSW#500862.js script, see the corresponding file that is included in the hotfix package.
 * You do not have to apply the IA-64 compiler (C2.dll) hotfix to determine whether this problem affects your applications or your drivers.

By default, the IA-64 compiler hotfix is installed in the following folder:

C:\Program Files\MSFT\Windows Server 2003 DDK and SDK Update

However, you can install the Windows Server 2003 SP1 DDK, the Windows Server 2003 SP1 SDK, or the Windows Server 2003 R2 SDK in a different folder on the computer.

The Readme.txt file that is located in the Windows Server 2003 DDK and SDK Update folder contains instructions about how to determine the file version of the C2.dll file that you are using. After you obtain the C2.dll file version, you can use the appropriate compiler hotfix version (C2.dll) in the Windows Server 2003 DDK and SDK Update folder to replace the original C2.dll file.

This hotfix has no additional functionality. The hotfix does not include any performance optimizations. Additionally, no interoperability issues exist between the files that do not need recompilation and the files that are recompiled.

If this problem affects some files in your applications or your drivers, we recommend that you recompile these files. This step improves the reliability of those files. This step also improves the reliability of the applications or the drivers that include these files.

This problem does not exist in more recent versions of the IA-64 compiler. For more information about which versions of the IA-64 compiler experience this problem, see the Readme.txt file in the Windows Server 2003 DDK and SDK Update folder.

<div class="status_section">

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.

<div class="moreinformation_section">

MORE INFORMATION
For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates

For more information about overview of Windows Server 2003 for Itanium-based Systems, visit the following MSDN Web site:

http://www.microsoft.com/servers/64bit/itanium/overview.mspx

Keywords: kbhotfixserver kbpubtypekc kbexpertiseadvanced kbqfe kbfix KB924449

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.