Search code examples
comwindows-installerbasic-msi

Understanding cryptic LocalServer32 registry entries created by MSI


I notice when I use the Class MSI table and other related tables to register COM classes during an MSI install, the LocalServer32 values don't have paths, but rather have some cryptic value. I see limited information on the web, suggesting this may be some sort of hash of the MSI ProductCode and Component GUID, but I can't find detailed information on how this works.

I'm wondering specifically if one of the features of this sort of registration is to ensure, in a multi-instance installation, that the instance of the component returned is from the same installation as the client, where possible. I kind of doubt it, but I want to understand everything this scheme accomplishes, and don't know where to find the information.

Here's a sample of such a registry entry:

Darwin Descriptor


Solution

  • It's called a "Darwin Descriptor". It exists to support self-repair on COM activation. That was an interesting idea with horrible execution (endless repair loops with source prompts and ugly basic UI), WiX defaults to writing the raw COM registry keys to avoid it.