Applying Shims (Compatibility Fixes) to Child Processes Using Layers (Compatibility Modes)
Published Aug 14 2018 04:03 PM 253 Views
Microsoft
First posted to MSDN on May, 19 2008

A comment came up on a recent posting regarding modules, inquiring about processes. Specifically:

Do these included/excluded modules have to be in the same process, or can they include other processes too?  (I have an application that calls multiple child applications that all need to be shimed in the same way as the first process)

Ah, that is a subject I appear to have not touched on here.

Shims, you see, apply to the process you specify, and only that process. Layers, however, apply to that process and to child processes. So, if you have a main application that launches child applications, applying the fixes as a layer will help you achieve that (assuming they are always launched by the shimmed parent process).

Note that Compatibility Administrator uses slightly different terminology here. It refers to shims as Compatibility Fixes, and layers as Compatibility Modes.

Layers are also handy as a means of applying a collection of fixes. You can group several fixes together and call them a layer. But the fact that layers apply to child processes is exactly why we include a WinXPSP2VersionLie layer in the system shim database. A collection of one isn't that interesting, but a collection of one that gets the shim applied to child processes? That's very interesting, particularly for self-extracting setups that like to think they are installing on XP.

If the child applications can be launched directly by Explorer, then you'll want to shim them up separately and we can't save you the work by having you just leverage a layer.

Version history
Last update:
‎Nov 13 2018 08:17 AM
Updated by: