Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

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


View products that this article applies to.

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.

↑ Back to the top


Symptoms

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

↑ Back to the top


Cause

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

↑ Back to the top


Resolution

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

↑ Back to the top


Status

Hotfix information

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

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if 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. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site: Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

You should apply this hotfix to the system on which you use the compilers that are listed in the "Symptoms" 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: 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 "Symptoms" 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 2008 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.
Collapse this tableExpand this table
File nameFile versionFile sizeDateTimePlatform
C2.dll14.0.40310.466,802,94421-Aug-200602:26IA-64
C2.dll14.0.40310.462,338,81623-Aug-200602:29x86
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 2008 DDK and the Windows Server 2008 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
  • 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.
  • The .cmd files that are included in the hotfix package

    These .cmd file scripts determine whether your applications or your drivers experience the problem.

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.
  4. Copy all the files of your application or your driver to the C2UPDATE folder.
  5. 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.
  6. 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).
  7. At the command prompt, type VSW#500862.cmd FileList.

    Note FileList 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:
C:\C2Update>vsw#500862.cmd win32k.sys win23k.sys*** win32k.sys ***win32k.sys:  20000001FF0290D0:.ThreadUnlock1win32k.sys:  20000001FF23B0F0:.?bPolyBezierTo@EPATHOBJ@@QEAAHPEAVEXFORMOBJ@@PEAU_POINTL@@K@Zwin32k.sys:  20000001FF2402D0:.?vSetClip@EWNDOBJ@@QEAAXPEAVREGION@@VERECTL@@@Zwin32k.sys:  20000001FF2B9040:.?bTextToPathWorkhorse@ESTROBJ@@QEAAHAEAVEPATHOBJ@@H@Zwin32k.sys:  20000001FF453110:.vCheckForSingularXform*** win23k.sys ***win23k.sys:  20000001FF0290D0:.ThreadUnlock1win23k.sys:  20000001FF23B0F0:.?bPolyBezierTo@EPATHOBJ@@QEAAHPEAVEXFORMOBJ@@PEAU_POINTL@@K@Zwin23k.sys:  20000001FF2402D0:.?vSetClip@EWNDOBJ@@QEAAXPEAVREGION@@VERECTL@@@Zwin23k.sys:  20000001FF2B9040:.?bTextToPathWorkhorse@ESTROBJ@@QEAAHAEAVEPATHOBJ@@H@Zwin23k.sys:  20000001FF453110:.vCheckForSingularXform
Notes
  • The VSW#500862.cmd script sequentially disassembles, scans, and outputs the result for each file that you specify in the FileList parameter. The script does not process a subsequent file in the FileList 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 FileList 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.

↑ Back to the top


More information

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

↑ Back to the top


Keywords: KB924449, kbfix, kbqfe, kbexpertiseadvanced, kbpubtypekc, kbhotfixserver, kbautohotfix

↑ Back to the top

Article Info
Article ID : 924449
Revision : 12
Created on : 6/27/2007
Published on : 6/27/2007
Exists online : False
Views : 276