Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7041283
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T02:01:21+00:00 2026-05-28T02:01:21+00:00

What does Windows do to an app when it is run in Compatibility Mode?

  • 0

What does Windows do to an app when it is run in Compatibility Mode?

Is there a way I can detect the compatibility mode settings in .NET?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T02:01:22+00:00Added an answer on May 28, 2026 at 2:01 am

    What does Windows do to an app when it is run in Compatibility Mode?

    It inserts several compatibility shims that mimic old behavior or bugs. Sometimes this is necessary, some programs behavior depends on old bugs which have since been fixed; or they used undocumented functionality.

    Joel’s blog entry, How Microsoft Lost the API War gives a nice example of that:

    I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.

    That’s what compatibility shims are meant to do. Insert legacy behavior. Whether it is to report a different version of Windows; make a certain API behavior a different way; or disable some other features of Windows that might cause problems like Aero.

    The technical details of shims are here.

    The Shim Infrastructure implements a form of application programming interface (API) hooking. Specifically, it leverages the nature of linking to redirect API calls from Windows itself to alternative code—the shim itself. The Windows Portable Executable (PE) and Common Object File Format (COFF) Specification includes several headers, and the data directories in this header provide a layer of indirection between the application and the linked file. Calls to external binary files take place through the Import Address Table (IAT).

    Is there a way I can detect the compatibility mode settings in .NET?

    The Question Is a Program Running in Compatibility Mode seems to give a relevant answer.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I wish to write a windows app which does something when I become disconnected
Does Windows have the notion of system-wide shared memory segments and is there a
How does Windows protect against a user-mode thread from arbitrarily transitioning the CPU to
I have a simple Windows App written in Visual Studio 2008 (.NET 3.0, C#).
I have a windows app that uses SettingsProvider to read configuration settings and sets
i have a c# powered windows form app and i want to run a
Does windows have any decent sampling (eg. non-instrumenting) profilers available? Preferably something akin to
Does windows have performance counters to measure statistics of a dialup connection? Opening up
Does Windows XP (and up) store how long it has been... ...since the system
Does Windows installer provide a built-in method for updating applications, or do I have

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.