Jump to content

HFSLIP does not register UiAutomationCore.dll (in KB2564958)


Explorer09

Recommended Posts

I tested this on HFSLIP 1.7.10 beta J v8, slipstreaming updates of Windows XP Professional (x86).

It seems like HFSLIP does not recognize the registry entries in the [OleAcc.Add.Reg] and the [uIACore.Add.Reg] sections in KB2564958 "update.inf" file. This makes the file UiAutomationCore.dll unregistered in the slipstreamed Windows.

(AFAIK, it is fine to ignore the [OleAcc.Add.Reg] section, because the Windows setup will add the entries automatically, when registering Oleacc.dll.)

To check this bug:

1. Let HFSLIP slipstream the KB2564958 update.

2. Install the HFSLIP'ed Windows XP on a computer or a virtual machine.

3. Open regedit, and find each of the following registry keys:

HKCR,AppID\{60a90a2f-858d-42af-8929-82be9d99e8a1}
HKCR,CLSID\{60a90a2f-858d-42af-8929-82be9d99e8a1}
HKCR,CLSID\{6e29fabf-9977-42d1-8d0e-ca7e61ad87e6}
HKCR,CLSID\{ff48dba4-60ef-4201-aa87-54103eef594e}
HKCR,Interface\{146C3C17-F12E-4E22-8C27-F894B9B79C69}
HKCR,Interface\{40CD37D4-C756-4B0C-8C6F-BDDFEEB13B50}
HKCR,Interface\{4ece4541-81d4-44ac-9df6-d199ef66f904}
HKCR,Interface\{C270F6B5-5C69-4290-9745-7A7F97169468}
HKCR,Interface\{E81D1B4E-11C5-42F8-9754-E7036C79F054}
HKCR,TypeLib\{8acc2016-04a3-4343-b8e1-1870e35d6a41}
HKCR,TypeLib\{944DE083-8FB8-45CF-BCB7-C477ACB2F897}

Expected result: All of these keys should exist, and contain values.

Actual result: They are all missing.

Despite this little bug, Windows Update can still detect the presence of the UiAutomationCore.dll, and the user won't be notified that KB2564958 did not install completely.

I have a simple workaround for this. On the installed, HFSLIP'ed Windows, you can run this command to have the DLL registered correctly:

regsvr32.exe uiautomationcore.dll

Or, on the HFSLIP'ed disc, put this line in the [HFSLIPREG] section of "I386\HFSLIPWU.INF":

HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce",KB2564958,,"regsvr32.exe /s uiautomationcore.dll"

Link to comment
Share on other sites


Thanks for the info.

I just make a small workaround using KB2564958's update.inf

Rename update.inf to KB2564958RegUpdate.inf

Comment out Line 1 to line 51

Then replace line 53 (which is [ProductInstall.GlobalRegistryChanges.Install] )

with below 3 lines.

[Version]
Signature = "$Windows NT$"

[DefaultInstall]

Put KB2564958RegUpdate.inf in HFSVCPACK folder

This will register the dlls as well as add an info entry to Uninstall & Hotfix info as defined in the inf to the registry.

HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB2564958
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB2564958

There is a missing %HOTFIX% in [strings] section

I just add

HOTFIX                = "Hotfix"

in the [strings] section

Link to comment
Share on other sites

There is a missing %HOTFIX% in [strings] section

I just add

HOTFIX                = "Hotfix"

in the [strings] section

The update.inf inside KB2564958 seems to be incomplete. Just look at the last line in the file. There's a substitute character, which mean that some text should be cut off after this mark.

I wonder if Microsoft noticed this when building that inf file?

Edited by Explorer09
Link to comment
Share on other sites

tomasz86 is right, MS inf sometime also contains bugs.

KB2564958 when parsed by HFSLIP, seems to miss [ProductInstall.GlobalRegistryChanges.Install] section.

Below is KB2564958 when parsed by HFSLIP

You will notice

[DefaultInstall]
AddReg=Product.Add.Reg

that [Product.Add.Reg] is missing after that. Hence KB2564958 will failed to register the dll.

With or w/o sub character, if you modify accordingly in my 2nd post, it will also work.

HFSLP238.INF

Link to comment
Share on other sites

  • 3 weeks later...

If registering uiautomationcore.dll is the only problem when slipstreaming the hotfix the following lines could be added to HFSLIP :POSTHFX section.

::KB2564958
IF EXIST WORK\I386E\uiautomationcore.dll (
ECHO>>WORK\NSFREGt.TXT uiautomationcore.dll
)

This adds the registration of uiautomationcore.dll to the HFSLIPWU.INF file :hello:

Link to comment
Share on other sites

  • 2 weeks later...

If registering uiautomationcore.dll is the only problem when slipstreaming the hotfix the following lines could be added to HFSLIP :POSTHFX section.

::KB2564958
IF EXIST WORK\I386E\uiautomationcore.dll (
ECHO>>WORK\NSFREGt.TXT uiautomationcore.dll
)

This adds the registration of uiautomationcore.dll to the HFSLIPWU.INF file :hello:

I think, this is a pretty nice solution. But instead of managing this in the HFSLIP :POSTHFX section I will try to use a post-command:

HFSLIP_POST_KB2564958.cmd (in HFTOOLS)

@ECHO off
REM ---------------------------------------------------------------------------------
REM This batch fixes a problem caused by the incorrect updated.inf of KB2564958
REM
REM Because of this, the uiautomationcore.dll will not be registered.
REM
REM Put this script to HFTOOLS to avoid this problem.
REM ---------------------------------------------------------------------------------

IF EXIST WORK\I386E\uiautomationcore.dll (
ECHO>>WORK\NSFREGt.TXT uiautomationcore.dll
)

after a successfull test I will add this to the update-list / file-checker

Link to comment
Share on other sites

Hi Mimo

Could you also include in your script (HFSLIP_POST_KB2564958.cmd) the info if KB2564958 is slipped?

HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB2564958 
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB2564958

Without the registry info, I feel it is incomplete.

Also Automatic update might query the registry to determine what hotfix is currently installed.

Cheers

Link to comment
Share on other sites

I think that here there is no problem in the update itself. It's a bug (limitation) in HFSLIP which makes it parse the update.inf incorrectly.

HFSLIP uses a "fixed" list of AddReg entries. As easily expected, this leads to problems when nonstandard names are used as in this update. To fix the problem you need to modify this line in HFSLIP:

ECHO>>SOURCESS\I386\HFSLP!HFSLP!.INF AddReg=Product.Add.Reg,keys.add,MSI.AddReg,Actsetup.Reg,User.AddReg,Base.IE.AddReg,Common.Add.Reg,AppCompatSetup.reg,NoPrompt.AddReg,RegisterActiveSetup,Reg.WPD,MTP.AutoPlayRegistration,reg.devices,Reg.Codecs,Fraunhofer.Reg,V9Reg.Core,V9Reg.Core.AddOnly,V9Reg.Univ,WMP.ARP,V9.RegPUI,WMPAddReg.PUI,WMPAddReg.OSPUI,V9Reg.XP,WMP.SPAD,WMP.Reg.IEHard,Reg.WMDMHandler

and add the three sections present in this update like this:

ECHO>>SOURCESS\I386\HFSLP!HFSLP!.INF AddReg=Product.Add.Reg,keys.add,MSI.AddReg,Actsetup.Reg,User.AddReg,Base.IE.AddReg,Common.Add.Reg,AppCompatSetup.reg,NoPrompt.AddReg,RegisterActiveSetup,Reg.WPD,MTP.AutoPlayRegistration,reg.devices,Reg.Codecs,Fraunhofer.Reg,V9Reg.Core,V9Reg.Core.AddOnly,V9Reg.Univ,WMP.ARP,V9.RegPUI,WMPAddReg.PUI,WMPAddReg.OSPUI,V9Reg.XP,WMP.SPAD,WMP.Reg.IEHard,Reg.WMDMHandler,General.Add.Reg,OleAcc.Add.Reg,UIACore.Add.Reg

This is why using fixed names is really bad...

Edited by tomasz86
Link to comment
Share on other sites

This is why using fixed names is really bad...

Fixed names can't be too bad, that line in the script has been there for years! Blame MSFT for force feeding you a new binary & blame MSFT for changing their INF structure after all these years. If WU just wants that file registered, just put it into hfexpert\codecs and call it a day.

Link to comment
Share on other sites

Fixed names can't be too bad.

They may not be bad per se but the problem is that because so many things are hard coded in the script there always has to be someone adjusting it to support new nonstandard updates. "Adjusting" in this case means adding more fixed names ;)

I'd never rely on M$ here :ph34r:

Edited by tomasz86
Link to comment
Share on other sites

Could you also include in your script (HFSLIP_POST_KB2564958.cmd) the info if KB2564958 is slipped?

HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KB2564958 
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB2564958

I don't think that registry-entries could be set with a HFSLIP-POST-command. But an additional reg-file could do that job.

Without the registry info, I feel it is incomplete.

Also Automatic update might query the registry to determine what hotfix is currently installed.

But it's consistent. In general there is no uninstall-info or hotfix-info if you make a Windows-XP-CD with HFSLIP (or do I miss something?). So I would not prefer this but you could use a reg-file (in HFSVCPACK).

Microsofts automatic update doesn't need this info for Windows XP (but they changed it a long time ago for Office 2003 - for Office 2003 this registry-info is needed now).

...

and add the three sections present in this update like this:

ECHO>>SOURCESS\I386\HFSLP!HFSLP!.INF AddReg=Product.Add.Reg,keys.add,MSI.AddReg,Actsetup.Reg,User.AddReg,Base.IE.AddReg,Common.Add.Reg,AppCompatSetup.reg,NoPrompt.AddReg,RegisterActiveSetup,Reg.WPD,MTP.AutoPlayRegistration,reg.devices,Reg.Codecs,Fraunhofer.Reg,V9Reg.Core,V9Reg.Core.AddOnly,V9Reg.Univ,WMP.ARP,V9.RegPUI,WMPAddReg.PUI,WMPAddReg.OSPUI,V9Reg.XP,WMP.SPAD,WMP.Reg.IEHard,Reg.WMDMHandler,General.Add.Reg,OleAcc.Add.Reg,UIACore.Add.Reg

Does this work for this problem here? Without negative side effects?

Is this (maybe with a further ini-section-name) also a solution for this: nLite misses a registry entry when integrating KB2641653 (XP x86)

Edited by Mim0
Link to comment
Share on other sites

@Mim0

I haven't tested it but I'm sure that adding "win32k.Add.Reg.Session" to the line:

ECHO>>SOURCESS\I386\HFSLP!HFSLP!.INF AddReg=Product.Add.Reg,keys.add,MSI.AddReg,Actsetup.Reg,User.AddReg,Base.IE.AddReg,Common.Add.Reg,AppCompatSetup.reg,NoPrompt.AddReg,RegisterActiveSetup,Reg.WPD,MTP.AutoPlayRegistration,reg.devices,Reg.Codecs,Fraunhofer.Reg,V9Reg.Core,V9Reg.Core.AddOnly,V9Reg.Univ,WMP.ARP,V9.RegPUI,WMPAddReg.PUI,WMPAddReg.OSPUI,V9Reg.XP,WMP.SPAD,WMP.Reg.IEHard,Reg.WMDMHandler,General.Add.Reg,OleAcc.Add.Reg,UIACore.Add.Reg,win32k.Add.Reg.Session

will solve the problem.

This kind of change shouldn't cause any side effects.

Link to comment
Share on other sites

Hi guys,

I published a new HFSLIP on my little web-site with the hint from tomasz86 regarding USP/W2K, Thx to him!!!

But... ths problem described here and it's solution (previous posting) needs at least some tests. Unfortunately I have the next days no time for this.

If anyone could test this (and probably also regarding this : nLite misses a registry entry when integrating KB2641653 (XP x86) ) it would help me. Otherwise I will test it later. :)

CU, Mimo

Link to comment
Share on other sites

Hi guys,

I published a new HFSLIP on my little web-site with the hint from tomasz86 regarding USP/W2K, Thx to him!!!

But... ths problem described here and it's solution (previous posting) needs at least some tests. Unfortunately I have the next days no time for this.

If anyone could test this (and probably also regarding this : nLite misses a registry entry when integrating KB2641653 (XP x86) ) it would help me. Otherwise I will test it later. :)

CU, Mimo

Mimo,

I can't find the new HFSLIP on your page. Did you forget to upload it?

Thank you.

M2GD

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...