Windows 7 shim list
->>>> Click Here to Download <<<<<<<-
Windows 7 may be looking faster and more polished than its predecessor, Windows Vista, but both operating systems are nearly identical under the hood. That means some of the application compatibility problems that plagued Vista users could also strike Windows 7 users, especially corporate workers.
While many software and game makers have fixed the XP applications that broke under Vista three years ago, the same isn't true of custom applications running inside enterprises.
Often written in Microsoft languages such as. Net or Visual Basic, these apps can suddenly become a roadblock for enterprises intent on upgrading from XP to Windows 7, especially if those companies have thousands of them in use, said Chris Jackson, an associate software architect at Microsoft.
The disadvantage is that virtualized apps run slower -- sometimes much slower. Also, companies may end up having to support the newer operating system as well as the one they upgraded from. Essentially little bits of code, shims don't try to tackle app compatibility problems head-on, but rather use tricks to sidestep them. For instance, one common problem is caused by a requirement in Windows Vista and Windows 7 that most users work in standard user mode rather than administrator mode.
Because users in standard mode have fewer system rights, they are less likely to inadvertently install malware. But that also can break programs written for XP that assume users are running as administrators.
Figure 2 After the shim is applied, the application interacts with Windows indirectly; the shim code is injected and can modify the request to Windows, the response from Windows, or both. Specifically, it leverages the nature of linking to redirect API calls from Windows to alternative code—the Shim.
Consequently, a call into Windows looks like:. Specifically, you can modify the address of the Windows function resolved in the import table, and then replace it with a pointer to a function in the alternate shim code, as shown in Figure 2.
This redirection happens for statically linked. You can also shim dynamically linked. This is the cost-saving route—help the application by modifying calls to the operating system before they get there.
You can fix applications without access to the source code, or without changing them at all. You incur a minimal amount of additional management overhead for the shim database , and you can fix a reasonable number of applications this way. The downside is support as most vendors don't support shimmed applications.
You can't fix every application using shims. Most people typically consider shims for applications where the vendor is out of business, the software isn't strategic enough to necessitate support, or they just want to buy some time. For example, a very commonly used shim is a version-lie shim.
To implement this shim, we intercept several APIs that are used to determine which version of Windows the application is running on. HandleBadPtr The problem is indicated by an access violation error message that displays because an API is performing pointer validation before it uses a parameter. HandleMarkedContentNotIndexed The problem is indicated by an application that fails when it changes an attribute on a file or directory.
HeapClearAllocation The problem is indicated when the allocation process shuts down unexpectedly. The fix uses zeros to clear out the heap allocation for an application.
IgnoreAltTab The problem occurs when an application fails to function when special key combinations are used. This delivery failure forces the included hooks to be ignored and forces DInput to use Windows-specific hooks.
IgnoreDirectoryJunction The problem is indicated by a read or access violation error message that displays when an application tries to find or open files.
Note: Symbolic links appear to start in Windows Vista. IgnoreException The problem is indicated when an application stops functioning immediately after it starts, or the application starts with only a cursor appearing on the screen. The fix enables the application to ignore specified exceptions. By default, this fix ignores privileged-mode exceptions; however, it can be configured to ignore any exception. You can control this fix further by typing the following command at the command prompt: Exception1;Exception2 Where Exception1 and Exception2 are specific exceptions to be ignored.
Important: You should use this compatibility fix only if you are certain that it is acceptable to ignore the exception. You might experience more compatibility issues if you choose to incorrectly ignore an exception. IgnoreFloatingPointRoundingControl This fix enables an application to ignore the rounding control request and to behave as expected in previous versions of the application.
Before floating point SSE2 support in the C runtime library, the rounding control request was being ignored which would use round to nearest option by default.
This shim ignores the rounding control request to support applications relying on old behavior. IgnoreFontQuality The problem occurs when application text appears to be distorted. The fix enables color-keyed fonts to properly work with anti-aliasing. IgnoreMessageBox The problem is indicated by a message box that displays with debugging or extraneous content when the application runs on an unexpected operating system. If matching text is found, the application continues without showing the message box.
DLL file. IgnoreSetROP2 The fix ignores read-modify-write operations on the desktop to avoid performance issues. InstallComponent The fix prompts the user to install.
Net 3. NET 2. NET is not included with Windows 8. LoadLibraryRedirect The fix forces an application to load system versions of libraries instead of loading redistributable versions that shipped with the application. LocalMappedObject The problem occurs when an application unsuccessfully tries to create an object in the Global namespace. The fix intercepts the function call to create the object and replaces the word Global with Local.
MakeShortcutRunas The problem is indicated when an application fails to uninstall because of access-related errors.
The fix locates any RunDLL. After it applies this fix, the installer will create a shortcut that specifies a matching string to run during the application installation, thereby enabling the uninstallation to occur later. MirrorDriverWithComposition The fix allows mirror drivers to work properly with acceptable performance with desktop composition. MoveToCopyFileShim The problem occurs when an application experiences security access issues during setup. CopyFile APIs avoid moving the security descriptor, which enables the application files to get the default descriptor of the destination folder and prevents the security access issue.
OpenDirectoryAcl The problem is indicated by an error message that states that you do not have the appropriate permissions to access the application. The fix reduces the security privilege levels on a specified set of files and folders. The performance issues are visible in certain low-end cards at certain resolutions where the x buffer is scaled to fit the display resolution. PreInstallDriver The fix preinstalls drivers for applications that would otherwise try to install or start drivers during the initial start process.
ProcessPerfData The problem is indicated by an Unhandled Exception error message because the application tried to read the process performance data registry value to determine if another instance of the application is running. The fix handles the failure case by passing a fake process performance data registry key, so that the application perceives that it is the only instance running. Note: This issue seems to occur most frequently with.
NET applications. PromoteDAM The fix registers an application for power state change notifications. PropagateProcessHistory The problem occurs when an application incorrectly fails to apply an application fix.
ProtectedAdminCheck The problem occurs when an application fails to run because of incorrect Protected Administrator permissions. The fix addresses the issues that occur when applications use non-standard Administrator checks, thereby generating false positives for user accounts that are being run as Protected Administrators.
In this case, the associated SID exists, but it is set as deny-only. RedirectCRTTempFile The fix intercepts failing CRT calls that try to create a temporary file at the root of the volume, thereby redirecting the calls to a temporary file in the user's temporary directory. The fix intercepts the CoCreateInstance call for the missing filter and then redirects it to a supported version.
RedirectShortcut The problem occurs when an application cannot be accessed by its shortcut, or application shortcuts are not removed during the application uninstallation process.
The fix redirects all of the shortcuts created during the application setup to appear according to a specified path. Desktop or Quick Launch shortcuts: You must manually place the shortcuts on the individual user's desktop or Quick Launch bar. This issue occurs because of UAC restrictions: specifically, when an application setup runs by using elevated privileges and stores the shortcuts according to the elevated user's context.
In this situation, a restricted user cannot access the shortcuts. You cannot apply this fix to an. RelaunchElevated The problem occurs when installers, uninstallers, or updaters fail when they are started from a host application.
The fix enables a child. The fix retries the OpenService API call and verifies that the user has Administrator rights, is not a Protected Administrator, and by using read-only access.
Applications can test for the existence of a service by calling the OpenService API but some applications ask for all access when making this check.
This fix retries the call but only asking for read-only access. The fix enables the application to run by using elevated privileges. The fix is the equivalent of specifying requireAdministrator in an application manifest. The fix enables the application to run by using the highest available permissions. This is the equivalent of specifying highestAvailable in an application manifest. RunAsInvoker The problem occurs when an application is not detected as requiring elevation.
The fix enables the application to run by using the privileges that are associated with the creation process, without requiring elevation. This is the equivalent of specifying asInvoker in an application manifest. SessionShim The fix intercepts API calls from applications that are trying to interact with services that are running in another session, by using the terminal service name prefix Global or Local as the parameter.
At the command prompt, you can supply a list of objects to modify, separating the values by a double backslash. Or, you can choose not to include any parameters, so that all of the objects are modified. Therefore, applications that require access to Session 0 automatically fail. SetProtocolHandler The fix registers an application as a protocol handler.
You can control this fix further by typing the following command at the command prompt: Client;Protocol;App Where the Client is the name of the email protocol, Protocol is mailto, and App is the name of the application. Note: Only the mail client and the mailto protocol are supported. You can separate multiple clients by using a backslash. SetupCommitFileQueueIgnoreWow The problem occurs when a bit setup program fails to install because it requires bit drivers.
The fixdisables the Wow64 file system that is used by the bit editions of Windows, to prevent bit applications from accessing bit file systems during the application setup.
ShimViaEAT The problem occurs when an application fails, even after applying acompatibility fix that is known to fix an issue. Applications that use unicows. The fixapplies the specified compatibility fixes by modifying the export table and by nullifying the use of module inclusion and exclusion.
ShowWindowIE The problem occurs when a web application experiences navigation and display issues because of the tabbing feature. The fixintercepts the ShowWindow API call to address the issues that can occur when a web application determines that it is in a child window.
Sonique2 The application uses an invalid window style, which breaks in DWM. This fix replaces the window style with a valid value. SpecificInstaller The problem occurs when an application installation file fails to be picked up by the GenericInstaller function. The fixflags the application as being an installer file for example, setup.
SpecificNonInstaller The problem occurs when an application that is not an installer and has sufficient privileges generates a false positive from the GenericInstaller function.
The fixflags the application to exclude it from detection by the GenericInstaller function. This fix resolves the issue. UIPIEnableCustomMsgs The problem occurs when an application does not properly communicate with other processes because customized Windows messages are not delivered. The fixenables customized Windows messages to pass through to the current process from a lower Desktop integrity level.