Jump to content

HFSLIP doesn't update codec in KB975558


ValNet

Recommended Posts

Hi all! :hello:

1) If Windows Media Format v9.5 (wmfdist95.exe) is being installed, HFSLIP doesn't update the file mp4sdmod.dll from KB975558 hotfix (at least on my XP).

This causes Windows Update to suggest this package even if it was already included in compilation.

As far as I can tell, that's because if wmfdist95.exe is found in HF\ directory, the script sets its MPLEVEL variable to "42" (line 1482), but for value "42" only WMP10, WMP10L, and WM10L subdirectories in hotfixes are defined (line 476).

In KB975558 package there are two mp4sdmod.dll files, located in WM9 and WM10 subdirectories.

The script doesn't know about WM10 nor look in WM9 and therefore doesn't update the DLL.

It can be fixed, for example, by adding WM10 in line 476:

IF "%MPLEVEL%"=="42" SET MPFLDRA=WMP10&SET MPFLDRB=WMP10L&SET MPFLDRC=WM10L&SET MPFLDRD=WM10

Then script will use WM10\mp4sdmod.dll file.

Note that this will update the codec to version 10.0.0.xxxx.

The hotfix itself takes version 9.0.0.xxxx even if WMF9.5 was installed, but most of WMF9.5 files are v10, so this probably shouldn't cause any troubles.

The hotfix updates it to v10 as well.

Also, one more thing about WM8 decoder handling from this hotfix.

Maybe the line 1624

IF EXIST TEMP\WM8\mpg4ds32.ax MOVE/Y TEMP\WM8\mpg4ds32.ax TEMP >NUL

could be replaced with

IF EXIST TEMP\WM8 MOVE/Y TEMP\WM8\* TEMP >NUL

and moved to "%VERSION%"=="XP" branch of the above IF operator (line 1575), like in its "%VERSION%"=="2000" branch.

This could be useful for possible future WM8 hotfixes on XP.

2) A little note about registry file for KB2264107 hotfix (WindowsXP-KB2264107-x86.reg) given on Mim0's site.

It sets the value "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\CWDIllegalInDllSearch" to 0xFFFFFFFF, which means "exclude current working directory from DLL search paths" (support.microsoft.com/kb/2264107).

Looks like this also prevents applications from searching their files in paths relative to current.

In particular, HFSLIP itself can not unpack some hotfixes on system with this parameter set to 0xFFFFFFFF (because it runs them with relative paths - like "HF\HotFix.exe /X:TEMP").

If turn silent mode off, they gives "file is corrupt" errors (but runs OK if CWDIllegalInDllSearch is not FFFFFFFF).

Therefore, maybe it's better to set this value to

"1" (always exclude only network current working directory) or to

"2" (exclude network CWD for applications started locally, but allow it if program was started from network). IMHO, 2 is more universal and preferable.

I have attached both examples.

Thanks for developing this project! :)

P. S. By the way, the version of HFSLIP I'm referencing to is hfslip-1.7.10_beta_J_v10 edition by Mim0.

hfslip-1.7.10_beta_J_v10_test.zip

WindowsXP-KB2264107-x86_value_2.zip

Edited by ValNet
Link to comment
Share on other sites


Wow, it's been a while since I replied here. I normally rip WMP out entirely using hfcleanup, but I slipstream the WM11 codecs. This process is kind of odd, and I threw myself a few easter eggs when I wrote the program (along with tomcat). I do not recall this being documented, but here it goes anyway. Download the WMP11 installer and extract it to a temp folder. Next, create a HF\WMP11 folder. Inside that folder, place umdf.exe and wmfdist11.exe that you just extracted from the WMP11 installer. Hotfixes you'd need would be WMP11 ones, do not use any other WindowsMedia versions. Good luck. Your results may vary. Test it in a VM to be sure.

Link to comment
Share on other sites

Thanks for replying, TommyP!

I wish I could remember that clear what I was doing 2 years ago. :D

Anyway, since MS "forgot" to release SP4, the script stays pretty useful when you want to reinstall the system without redownloading all the fixes and waiting for them being applied...

I'll try to use v11 codecs, but since they are intended to be installed with complete Media Player 11 package, I wonder if alone installation could cause some unexpected behavior.

Guess I'll have to figure out how Windows Media versions are handled by script (as I've understood at the moment, there are 3 variants of WM subsystem - normal, legacy and some third, called "emerald" in MP10).

In particular, if there any difference in subdirectories copying order - WM9, WMP9, WMP9NL, WM9NL.

The idea is to update WM8 and WM9 dlls even if WM10/11 is being installed - i. e. to copy files v9 first and then replace them with v10 if any have same names. Though maybe this is the wrong way, resulting in unused dlls copying. Need to test. :unsure:

I know I'm probably "rediscovering a wheel", but understanding how the script works is interesting, to say the least. :)

Link to comment
Share on other sites

I've found too many probs of WMV files that just won't play with the old v8 codecs. There's better compatibility with v11 ones. Using If you use a 3rd party media player (i.e. wmp classic), then you can safely do as I suggested above. I've done it that way for years until I got out of xp. Just install it on a vm and try out a few WMV files on that VM too. There is a fine balancing act of WM codecs on XP, it took me a long time to get them just right.

Link to comment
Share on other sites

There is a fine balancing act of WM codecs on XP, it took me a long time to get them just right.

It sure is, it seems I've already managed to kill WMP. :whistle: Now it complains about "corrupted installation".

Not a problem, of course, since I'm testing in VirtualBox.

Trying to figure out what went wrong.

Thanks again!

Link to comment
Share on other sites

Ok, the problem is a bit deeper than my modifications: the script doesn't register Windows Media package completely (or at least completely enough for Media Player).

If you try to integrate wmfdist95.exe into XP SP3 with current version of script (1.7.10 beta J ... 1.7.10 beta J v10), the Media Player will not start after XP installation saying that it is corrupt.

Solution: install wmfdist95.exe via svcpack.inf.

Place exe into HFSVCPACK_SW2, the update WindowsXP-KB941569-x86-RUS.exe into HFSVCPACK_SW1, and change wmfdist95.exe command line parameters as follows:

wmfdist95.exe /Q:A /R:N /C:"wmsetsdk.exe /WMFDIST /Quiet /R:N /DisallowSystemRestore"

Then the package will be installed completely and fully registered, and MP won't complain.

There is a one problem: it seems that wmf 9.5 installation starts after all hotfixes were installed. Therefore KB941569 installs before that package and can not detect proper versions of dlls - and doesn't update them.

No matter if I place it to svcpack.inf directly or to hfslip.cmd - the log of Windows Media installation has later date than KB941569's log.

So, Media Player will work, Windows Media will be updated to version 9.5, but hotfix KB941569 will have no effect, despite that it will be present in the installed packages list.

If install it later again, it will update all dlls as needed.

Edited by ValNet
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...