Explorer09

HFSLIP does not register UiAutomationCore.dll (in KB2564958)

24 posts in this topic

By the way, Mim0, the fix for USP5 is not only for the newer versions as you wrote:

Fixed handling of newer USP5-versions for Windows 2000

but even the last version of USP5.1 from 2006 is affected by it :whistle:

0

Share this post


Link to post
Share on other sites

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

Hey Mimo,

Have you done anything about this? I think that more should be done with this file. In its current form it doesn't follow the 8.3 filename format and therefore slipstreaming it will break a DOS based installation (WINNT.EXE). It should be renamed to something like "uiaucore.dll" and then renamed to its original name during Windows setup. HFSLIP should add the required lines to TXTSETUP.SIF in order to do it, ex.:


[SourceDisksFiles]
uiaucore.dll = 1,,,,,,,2,0,0,uiautomationcore.dll

0

Share this post


Link to post
Share on other sites

...

In its current form it doesn't follow the 8.3 filename format and therefore slipstreaming it will break a DOS based installation (WINNT.EXE). It should be renamed to something like "uiaucore.dll" and then renamed to its original name during Windows setup.

...

The inf file in KB2564958 uses the abbreviation "UIACore". Perhaps we should rename to "UIACore.dll" instead of "uiaucore.dll"?

0

Share this post


Link to post
Share on other sites

Of course, it can be "UIAcore" ;) It doesn't matter as long as it's 8.3.

0

Share this post


Link to post
Share on other sites

BTW, I would like to write a patch to the HFSLIP code, but its coding style is so poor that I don't know where to patch.

0

Share this post


Link to post
Share on other sites

Am I too late to reply to these two posts? Anyway...

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).

Just for the info. The automatic update (and Windows Update too) in Windows XP (x86) needs only this info

"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix\KBxxxxxxx","Installed"

to see whether these updates are installed:

KB961118, KB968389, KB2570947, KB2603381, KB2659262, KB2686509

For other updates, the "Installed" registry can be deleted without problems. In fact I do so in my slipstreamed disc.

...

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)

Yes, it will work without side effects. But it may cause a side effect if you apply this solution on my thread about KB2641653.

The reason is that the KB2641653 case is a conditional AddReg entry.

0

Share this post


Link to post
Share on other sites

Yes, it will work without side effects. But it may cause a side effect if you apply this solution on my thread about KB2641653.

The reason is that the KB2641653 case is a conditional AddReg entry.

Is this registry entry present at all in a clean system? Correct me if I'm wrong but I think that it's not. Therefore you can safely always add the registry settings from KB2641653 when it's slipstreamed.

0

Share this post


Link to post
Share on other sites

Okay, I finally understood the code, and made a patch for it.

Here it is: (in unified diff format)

--- old/hfslip-1.7.10_beta_J_v10.cmd	2012-08-25 17:27:08.000000000 +0800
+++ new/hfslip-1.7.10_beta_J_v10.cmd 2012-11-04 23:39:23.343750000 +0800
@@ -2392,6 +2392,11 @@
ECHO>>WORK\HFSSDF.TXT MUAuth.cab=1&ECHO>>WORK\HFS_SOFTDIST.TXT AuthCabs\7971f918-a847-4430-9279-4a52d1efe18d\MUAuth.cab,MUAuth.cab
)
)
+IF EXIST WORK\I386E\uiautomationcore.dll (
+ REN "WORK\I386E\uiautomationcore.dll" uiacore.dll
+ ECHO>>SOURCESS\I386\TXTSETUP.SIF uiacore.dll = 1,,,,,,,2,0,0,uiautomationcore.dll&ECHO>>SOURCESS\I386\DOSNET.INF d1,uiacore.dll
+ ECHO>>WORK\HFSLIPCMDP1.TXT regsvr32.exe /s %%SYSTEMROOT%%\system32\uiautomationcore.dll
+)
IF EXIST WORK\I386E\updroots.exe (
IF EXIST WORK\I386E\authroots.sst (
REN WORK\I386E\authroots.sst authroot.sst

For those who don't know what this patch does, here's some brief explanation:

These 5 lines are going to be added in the :POSTHFX section of the HFSLIP. The :POSTHFX section includes rules to handle unusual MS updates and hotfixes. This section is run before HFSLIP copies the disc content from SOURCE to SOURCESS directory.

These 5 new lines handles the special file "uiautomationcore.dll" by doing these:

1. Rename "uiautomationcore.dll" to "uiacore.dll" (see post #18 and #19 for why)

2. Write to TXTSETUP.SIF and DOSNET.INF to note the presence of "uiacore.dll". (The file does not exist in the original Win XP or 2003)

3. Add a command to run this during the Windows installation:

regsvr32.exe /s %SYSTEMROOT%\system32\uiautomationcore.dll

This line is in "WORK\HFSLIPCMDP1.TXT", which will be copied and appended to "SOURCESS\I386\SVCPACK\HFSLIP.CMD" at the later part of HFSLIP.

Note:

This patch does not work with KB2564958-x64 update! The update for x64 has additional files that needs to be handled, and I don't know how to write code for that.

EDIT: Perhaps this one will work also:

--- old/hfslip-1.7.10_beta_J_v10.cmd	2012-08-25 17:27:08.000000000 +0800
+++ new/hfslip-1.7.10_beta_J_v10.cmd 2012-11-05 08:45:29.953125000 +0800
@@ -2392,6 +2392,11 @@
ECHO>>WORK\HFSSDF.TXT MUAuth.cab=1&ECHO>>WORK\HFS_SOFTDIST.TXT AuthCabs\7971f918-a847-4430-9279-4a52d1efe18d\MUAuth.cab,MUAuth.cab
)
)
+IF EXIST WORK\I386E\uiautomationcore.dll (
+ REN "WORK\I386E\uiautomationcore.dll" uiacore.dll
+ ECHO>>SOURCESS\I386\TXTSETUP.SIF uiacore.dll = 1,,,,,,,2,0,0,uiautomationcore.dll&ECHO>>SOURCESS\I386\DOSNET.INF d1,uiacore.dll
+ ECHO>>WORK\NSFREGt.TXT uiautomationcore.dll
+)
IF EXIST WORK\I386E\updroots.exe (
IF EXIST WORK\I386E\authroots.sst (
REN WORK\I386E\authroots.sst authroot.sst

Edited by Explorer09
0

Share this post


Link to post
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.