Welcome to MSDN Blogs Sign in | Join | Help

Chris Jackson's Semantic Consonance

Windows Application Compatibility in the Real World
System Shim Database Entries: They May Not Work, and How To Modify Them If They Don't

I received one comment on my recent blog post on copying from the system shim database, which I think is worthy of discussion as I have heard similar questions before:

I have found previously (under Windows XP, haven't attempted under Vista) that some of the built-in shims weren't suitable. I had a custom database for the applications into which I'd copy/paste/modify the system shim database. I don't recall ever seeing this error, so does compiling a modified shim not cause it?

To answer the question directly, I am not sure about Windows XP. However, on Windows Vista, even if I modify the shim, I end up unable to compile the SDB.

But that leads us to two discoveries.

First, the fact that we have shimmed something in the System Shim Database does not mean that it works 100%.

With some applications, we are simply shimming to get it to a particular point in the application. Working with one ISV, our objective was just to get it to hobble through to the auto update component of the application. They didn't care if it was a little bit ugly, so long as it actually got there.

With others, we have simply shimmed the application to fix the application and close a particular bug report that was submitted. If nobody ran the application to resolve that scenario, found that it failed, and submitted the bug to us, we haven't even tried to shim it.

Or, perhaps, we couldn't shim it, because the thing that it does wrong is unfixable using shims.

I have heard some people suggesting that finding the application in the list means that we are vouching for the fact that it works. We work really hard to get it that way, but unfortunately we can't make such a promise.

Second, you can modify the fixes that we have made to applications.

But it's not always easy.

If you have additional things to fix, then you can just add the application (don't copy/paste, because that's broken right now) and add the additional fixes that resolve the scenarios we clearly haven't tested before. We'll pick up both the entries in sysmain and in your custom SDB and apply both sets of shims.

If you need to remove an application fix from sysmain, you can right click on it, and disable that entry. If you need to disable an entry, we'd really love for you to tell us about it, so we can fix things up the right way. An example would be if you needed to add additional command line arguments to a shim. We can't just add the same shim twice or they don't both get picked up. Instead, you'd want to disable ours and add yours.

Posted: Tuesday, May 13, 2008 4:04 PM by Chris Jackson

Comments

Zooba said:

"... we'd really love for you to tell us about it"

I (and probably plenty of others) would love to do that. The particular app I was playing with simply had the Win98 mode applied, when it only needed two individual shims (one of which was not included in Win98).

Clearly Microsoft can't be expected to determine the ideal set of shims for hundreds of applications, so it would be great if there were some way of sharing fixes. I seem to recall something like this being discussed a while ago (possibly here?), but apparently nothing came of it.

# May 14, 2008 8:06 AM

Relationship Compatibility said:

I received one comment on my recent blog post on copying from the system shim database, which I think is worthy of discussion as I have heard similar questions before: I have found previously (under Windows XP, haven't attempted under Vista) that som

# June 7, 2008 11:48 AM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker