Thursday, July 8, 2010

New update to improve Windows 7 backward compatibility

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:

Windows 7 x86 based (32-bit)
Windows 7 x64 based
Windows Server 2008 R2 x64 based
Windows Server 2008 R2 IA-64 based

0 comments:

Post a Comment

Popular Posts