An update is available to the backward compatibility feature in Windows 7 and in Windows Server 2008 R2. 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:
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.
- 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.
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.