Using the Win2000SP1VersionLie Fix

Applies To: Windows 7, Windows Vista

This section includes information about using the Win2000SP1VersionLie compatibility fix, including the associated issues, intercepted application programming interface (API) details, included and excluded modules, and usage.


All version lie compatibility fixes address the issue whereby an application fails to function because it is checking for, but not finding, a specific version of the operating system. The Win2000SP1VersionLie returns the Microsoft Windows® 2000 with Service Pack 1 (SP1) version information to the application, regardless of the actual operating system version that is running on the computer, allowing the application to continue running.

Investigating the Issue

Application-related issues that can be resolved by applying the Win2000SP1VersionLie compatibility fix typically appear as dialog boxes or user interface (UI) elements that state your current operating system is not supported.

To test if a version lie compatibility fix will resolve your issue, you can follow these steps:

  1. Right-click the problematic application's executable (.exe) file, and then click Properties.

  2. Click the Compatibility tab, click to select the Run this program in compatibility mode for check box, and then click the operating system that the application was intended to be run on.


The compatibility mode that is applied to the application by using the Compatibility tab includes additional fixes. You may not require all of the additional fixes to address your current application compatibility issues; however, it is easier to apply the fixes as a group, rather than to require you to pick out the individual fixes. The application of the additional fixes will not cause new compatibility issues.


If the version lie compatibility fix does not correct your problem, you might need to investigate how the application is inspecting the version number, and possibly apply the VirtualRegistry compatibility fix if it is checking the registry keys. For more information about the VirtualRegistry compatibility fix, see Using the VirtualRegistry Fix.

Intercepted APIs

The following table provides a list of APIs that are intercepted by the Win2000SP1VersionLie fix.

API Description


Returns the LPOSVERSIONINFOA structure, with the following values:

  • dwMajorVersion = 4

  • dwMinorVersion = 10

  • dwBuildNumber = 0x040A08AE

  • dwPlatformId= 1

  • szCSDVersion = ""


Returns the LPOSVERSIONINFOW structure, with the following values:

  • dwMajorVersion = 4

  • dwMinorVersion = 10

  • dwBuildNumber = 0x040A08AE

  • dwPlatformId = 1

  • szCSDVersion = ""


Returns the required DWORD value of 0xC0000A04

Command-Line Options

The following table provides details for each of the available command-line options, including its usage.

Option Description


Disables the Win2000SP1VersionLie compatibility fix if SafeDisc 1 or SafeDisc 2 is detected by the command-line option.

The command-line option detects if SafeDisc 1 exists by testing to see if there is an executable (.exe) file and an .icd file (a proprietary file extension that relates to SafeDisc Encrypted Digital Rights Management) with the process name, and it detects if SafeDisc 2 exists by searching for a signature in the process header, during the API call. If either SafeDisc 1 or SafeDisc 2 exists, the intercepted APIs will return to their original values.

Included and Excluded Modules

The following table provides details for the modules that are included and excluded by the Win2000SP1VersionLie compatibility fix.

Module Name Included or Excluded















Fixing Your Code

Applications that require the Win2000SP1VersionLie compatibility fix perform version checks by using the GREATER THAN or EQUAL TO operators. However, in some cases, additional operating systems are supported through added equality comparisons and logical OR operators, which appear between each of these comparisons.

Except in situations where there are specific legal or business reasons to do so, operating system version checks should be done only with a GREATER THAN OR EQUAL TO operator, which will allow the software to work on subsequent versions of the operating system without API interception to include a version lie.

See Also


Windows Vista and Windows 7 Operating Systems