Explorer09 Posted May 19, 2012 Posted May 19, 2012 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.dllOr, 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"
Geej Posted May 25, 2012 Posted May 25, 2012 Thanks for the info.I just make a small workaround using KB2564958's update.infRename update.inf to KB2564958RegUpdate.infComment out Line 1 to line 51Then replace line 53 (which is [ProductInstall.GlobalRegistryChanges.Install] )with below 3 lines.[Version] Signature = "$Windows NT$"[DefaultInstall]Put KB2564958RegUpdate.inf in HFSVCPACK folderThis 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\KB2564958HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\KB2564958There is a missing %HOTFIX% in [strings] sectionI just addHOTFIX = "Hotfix"in the [strings] section
Explorer09 Posted June 1, 2012 Author Posted June 1, 2012 (edited) There is a missing %HOTFIX% in [strings] sectionI just addHOTFIX = "Hotfix"in the [strings] sectionThe 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 June 1, 2012 by Explorer09
tomasz86 Posted June 1, 2012 Posted June 1, 2012 They are probably created automatically and M$ doesn't even check them very thoroughly. There are similar bugs in older Win2k updates too.
Geej Posted June 3, 2012 Posted June 3, 2012 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
Acheron Posted June 18, 2012 Posted June 18, 2012 If registering uiautomationcore.dll is the only problem when slipstreaming the hotfix the following lines could be added to HFSLIP :POSTHFX section.::KB2564958IF EXIST WORK\I386E\uiautomationcore.dll ( ECHO>>WORK\NSFREGt.TXT uiautomationcore.dll)This adds the registration of uiautomationcore.dll to the HFSLIPWU.INF file
Mim0 Posted July 3, 2012 Posted July 3, 2012 If registering uiautomationcore.dll is the only problem when slipstreaming the hotfix the following lines could be added to HFSLIP :POSTHFX section.::KB2564958IF EXIST WORK\I386E\uiautomationcore.dll ( ECHO>>WORK\NSFREGt.TXT uiautomationcore.dll)This adds the registration of uiautomationcore.dll to the HFSLIPWU.INF file 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 offREM ---------------------------------------------------------------------------------REM This batch fixes a problem caused by the incorrect updated.inf of KB2564958REMREM Because of this, the uiautomationcore.dll will not be registered.REMREM 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
Geej Posted July 3, 2012 Posted July 3, 2012 Hi MimoCould 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\KB2564958Without the registry info, I feel it is incomplete. Also Automatic update might query the registry to determine what hotfix is currently installed.Cheers
tomasz86 Posted July 3, 2012 Posted July 3, 2012 (edited) 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.WMDMHandlerand 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.RegThis is why using fixed names is really bad... Edited July 3, 2012 by tomasz86
tommyp Posted July 3, 2012 Posted July 3, 2012 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.
tomasz86 Posted July 3, 2012 Posted July 3, 2012 (edited) 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 Edited July 3, 2012 by tomasz86
Mim0 Posted July 4, 2012 Posted July 4, 2012 (edited) 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\KB2564958I 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.RegDoes 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 July 4, 2012 by Mim0
tomasz86 Posted July 4, 2012 Posted July 4, 2012 @Mim0I 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.Sessionwill solve the problem.This kind of change shouldn't cause any side effects.
Mim0 Posted July 4, 2012 Posted July 4, 2012 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
My2GirlsDad Posted July 5, 2012 Posted July 5, 2012 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, MimoMimo,I can't find the new HFSLIP on your page. Did you forget to upload it?Thank you.M2GD
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now