Export (0) Print
Expand All
Expand Minimize
This topic has not yet been rated - Rate this topic

Using the Win98VersionLie Fix

Published: June 11, 2010

Updated: June 11, 2010

Applies To: Windows 7, Windows Vista

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

Win98VersionLie

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 Win98VersionLie returns the Microsoft Windows® 98 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 Win98VersionLie 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 for which the application was designed to run.

    ImportantImportant
    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.

    noteNote
    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 Win98VersionLie fix.

 

API Description

GetVersionExA

Returns the LPOSVERSIONINFOA structure, with the following values:

  • dwMajorVersion = 4

  • dwMinorVersion = 10

  • dwBuildNumber = 0x040A08AE

  • dwPlatformId = 1

  • szCSDVersion = ""

GetVersionExW

Returns the LPOSVERSIONINFOW structure, with the following values:

  • dwMajorVersion = 4

  • dwMinorVersion = 10

  • dwBuildNumber = 0x040A08AE

  • dwPlatformId = 1

  • szCSDVersion = ""

GetVersion

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

Detect_SafeDisc

Disables the Windows98VersionLie 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 name 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 Win98VersionLie compatibility fix.

 

Module Name Included or Excluded

msvcrt.dll

Excluded

msvcirt.dll

Excluded

oleaut32.dll

Excluded

kernel32.dll

Excluded

smackx32.dll

Excluded

docbox.api

Excluded

shell32.dll

Included

Fixing Your Code

Applications that require the Win98VersionLie 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

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.