A new update was made available by Microsoft for Windows 7 and Windows Server 2008 R2 operating system that is designed to advance the backward compatibility capability of the two platforms.
The backward compatibility feature of Windows 7 allows running of older application that doesn’t play nice with the new operating system. Although not a one-hundred percent fool proof solution, the backward compatibility feature has worked for me on a number of occasions in the past.
This update enables a dynamic-link library (DLL) that is designed for earlier versions of Windows to run in a Windows Vista context if the following conditions are true:
- The DLL does not specify an RT_MANIFEST resource.
- The DLL calls an API that uses the dynamic compatibility context. For example, the DLL calls the GetOverlappedResults API.
The backward compatibility feature in Windows 7 and in Windows Server 2008 R2 detects the manifest in a DLL and sets the dynamic context of a DLL to Windows 7 or to Windows Vista. This enables Windows 7 and Windows Server 2008 R2 to provide a Windows Vista context for applications that are designed for earlier versions of Windows.
However, if a DLL is not manifested correctly, the DLL may run in a Windows 7 context unexpectedly. This issue occurs because the Windows 7 compatibility mechanism incorrectly assumes that a DLL is compatible with Windows 7 if the DLL does not specify an RT_MANIFEST resource. This issue occurs especially if all the other DLLs in an application are not manifested or if the other DLLs are manifested with Windows 7 compatible GUIDs. This causes the "faulty" DLL to run in Windows 7 compatible mode. This behavior causes the application that loads the DLL to stop responding. Therefore, customers cannot run an application in Windows 7 context if the application loads at least one DLL in those two conditions.
Download the update for: