Jump to content

SED, INF, DDF file format description


Recommended Posts

that sucks doesnt it Petr for MS not to include updated makecab.exe and wextract.exe files? I think Win2003 SP2 may come out either late this year or early next year. There will be an XP SP3 sometime in 2007. MS definitely needs to address the date problems when creating CAB or self-extracting CAB files with the Windows Server 2003 version of makecab.exe.

BTW, makecab.exe 6.0.5384.4 (from Windows Vista beta 2) works correctly on Windows XP and uses correctly the "modified" date, not "created" as version 5.1.2600.2180.

Petr

Link to comment
Share on other sites


BTW, makecab.exe 6.0.5384.4 (from Windows Vista beta 2) works correctly on Windows XP and uses correctly the "modified" date, not "created" as version 5.1.2600.2180.

Petr

is wextract.exe also included in Windows Vista?

Link to comment
Share on other sites

  • 1 month later...

what version of wextract.exe is included in the latest beta of Windows Vista?

Vista pre-rc1 build 5552 contains version 6.0.5552.16384

Vista rc1 build 5600 contains version 6.0.5600.16384 (vista_rc1.060829-2230)

I have uploaded iexpress/wextract/makecab/advpack from vista rc1 here: http://home.tiscali.cz/~cz053010/iexpress-5600.zip

Petr

Link to comment
Share on other sites

Commonly used version ranges by Microsoft:

TargetWin9xVersion=4.0.950-4.0.1212 - Windows 95

TargetWin9xVersion=4.10.1998-4.10.2222 - Windows 98

TargetWin9xVersion=4.90.3000 - Windows ME

I wouldnt use that kind of TargetWin9xVersion setting for Windows 95. That may not work for Win95 B/C systems with the USB Supplement Update installed which updates Win95 OSR2 to either version 4.03.1212 or 4.03.1214.

personally I prefer 'TargetWin9xVersion=4.00.950-4.03.1214' when making patches for Win95

see MS KB article 158238 on the 9x versions of Windows being used:

http://support.microsoft.com/kb/158238

Versions reported to iexpress package (wextract stub):

Windows 95 retail, OEM and OSR1: 4.00.950

Windows 95 OSR2, OSR2.1 and OSR2.5 without USB supplement: 4.00.1111

Windows 95 OSR2.1 and OSR2.5 with USB supplement: 4.00.1212

So TargetWin9xVersion=4.0.950-4.0.1212 is sufficient to cover all Windows 95 versions and old Microsoft packages contain this range. Newer packages from Microsoft contain wider range 4.00.950-4.03.1214 but this seems to be unnecessary.

MSKB article 158238 does not provide correct information. For example, the version displayed on the System Properties General tab is different:

Windows 95 retail and OEM: 4.00.950

Windows 95 retail with SP1 and OSR1: 4.00.950a (not 4.00.950A)

Windows 95 OSR2 and OSR2.1: 4.00.950 B (not 4.00.950B)

Windows 95 OSR2.5: 4.00.950 C (not 4.00.950C) (after uninstalling USB supplement is changed to 4.00.950 b)

Version stored in registry in HKLM\Software\Microsoft\Windows\CurrentVersion, keys VersionNumber and SubVersionNumber:

Windows 95 retail and OEM: 4.00.950

Windows 95 retail with SP1 and OSR1: 4.00.950a

Windows 95 OSR2 and OSR2.1 without USB supplement: 4.00.1111 B

Windows 95 OSR2.1 with USB supplement: 4.03.1212 B or 4.03.1214 B

Windows 95 OSR2.5 without USB supplement: 4.00.1111 C

Windows 95 OSR2.5 with USB supplement: 4.03.1214 C

Windows 95 OSR2.5 after uninstalling USB supplement: 4.00.1111 b

Note: There are two versions of USB supplement USBSUPP.EXE, 4.03.1212 and 4.03.1214. In all versions of OSR 2.1 and OSR 2.5 seems to be USBSUPP.EXE 4.03.1214 only, KB181661 lists 4.03.1214 version too, USBSUPP.EXE 4.03.1212 I have found here only: http://www.usbman.com/WebDrivers/Win95USB%...ate/usbsupp.zip

DOS command VER reports 4.00.950 for retail/SP1/OEM/OSR1 and 4.00.1111 for OSR2.x.

Windows command WINVER reports just "Windows 95" for all sub-versions.

Edited by Petr
Link to comment
Share on other sites

  • 3 weeks later...

Hi EveryOne

I have discovered many hidden SED file directives several years ago

I think this is a good place to share it

I suggest you to complete it or provide more descriptions about directives if you know something.

Here it is...

Template.sed

[Version]

;Class=IEXPRESS

;SEDVersion=3

;CDFVersion=3

[Options]

;AppErrorCheck=

;AlwaysPropogateCmdExitCode=

;PropogateCmdExitCode=

;PlatformDir=

;PackagePurpose=InstallApp CreateCab ExtractOnly

;ShowInstallProgramWindow=0

;Quantum=

;CompressionType=NONE QUANTUM MSZIP LZX

;CompressionMemory=15-21

;CompressionLevel=1-7

;MultiInstanceCheck=P or B,"Cookie String" P = Prompt , B = Block

;HideExtractAnimation=0

;UseLongFileName=0

;UpdateAdvDlls=1

;PackageInstallSpace(KB)=

;Compress=OFF

;KeepCabinet=1

;RebootMode=I

;InstallPrompt=%InstallPrompt%

;DisplayLicense=%DisplayLicense%

;FinishMessage=%FinishMessage%

;TargetName=%TargetName%

;FriendlyName=%FriendlyName%

;AppLaunched=%AppLaunched%

;PostInstallCmd=%PostInstallCmd%

;AdminQuietInstCmd=%AdminQuietInstCmd%

;UserQuietInstCmd=%UserQuietInstCmd%

;SourceMediaLabel=

;IEXP_LayoutINF=

;SourceFiles=SourceFiles

;CheckAdminRights=1

;TargetNTVersion=%VersionRange%:%Prompt%:ok OkCancel YesNo

;TargetWin9xVersion=4.10.1998-4.10.2222:%Prompt%:ok OkCancel YesNo

;TargetFileVersion=@FileVersionSection

;InsideCompressed=0

;CAB_FixedSize=0

;CAB_ResvCodeSigning=0,2048,4096,6144

;PackageForX86=

;VersionInfo=VersionSection

;ExtractorStub=

[FileVersionSection]

;1=#S\%File%:%VersionRange%:%Prompt%:ok OkCancel YesNo

;2=#W\

;3=#A\

; #S System Directory

; #W Windows Directory

; #A I guess Application Directory (not sure)

[VersionSection]

;FileDescription=

;CompanyName=

;FileVersion=

;ProductVersion=

;OriginalFilename=

;LegalCopyright=

;ProductName=

;InternalName=

;FromFile= Reads Version info Resouce from Specified PE file

[strings]

;AdminQuietInstCmd=

;UserQuietInstCmd=

;FILE0=

[sourceFiles]

;SourceFiles0=%Path%

;SourceFiles1=

[sourceFiles0]

;%FILE0%=

;%FILE1%=

;Notes:

;Passing #e and #d parameters to the install command,

;will be converted to <full path> and <directory path>

;of the extractor package respectively.

; It is safer to pass "#e" or "#d" instead of #e or #d

Edited by sepehrst
Link to comment
Share on other sites

  • 3 weeks later...
Petr, Gape, Tihiy + other developers, you might find this useful:

somebody made a small GUI tool [works with all Win9x/ME editions, even if it is meant for NTx] which converts REG files into INF files [GNU GPL open source]:

http://www.paraglidernc.com/12142.html

ConvRegToInf is designed specifically for Bart's PEBuilder tool [works only with NTx OSes]:

http://www.nu2.nu/pebuilder/

Download ConvRegToInf [11 KB]:

http://www.paraglidernc.com/plugins/ConvRegToInf02.zip

ConvRegToInf requires NFR 1.0 or newer already installed:

http://msdn.microsoft.com/netframework/dow...s/framework1_1/

The INF-Tool found at the following site can also convert REG files into INF files AND does NOT require .NET Framework and can work under Win9xME and WinNTx OSes.

http://www.inner-smile.com/dl_inf.htm

the "lite" version of INF-Tool is free for personal use

Link to comment
Share on other sites

MDGx, I have noticed recently that some of the unofficial patches for Win9xME have been created or revised from version 6.00.2800.1168 of wextract.exe. where can this specific version be found?
Petr posted it here:

http://www.msfn.org/board/?s=&showtopi...st&p=560359

Thanks for the INF-tool.

Edited by MDGx
Link to comment
Share on other sites

  • 2 weeks later...

I'm trying to understand how combined updates work, i.e. one packege for 98 Gold + 98 SE, or one package for 95 Gold, 95 OSR2 and 95 OSR 2.x but I'm lost a bit.

An example for Windows 95. The controlling 175086up.inf executed by the WEXTRACT contains:

[DefaultInstall]
RunPreSetupCommands = Win95.Ver.Check, OSR2.Ver.Check, OSR21.Ver.Check

[Win95.Ver.Check]
"rundll32 advpack.dll,LaunchINFSection 95G_chk.inf,DefaultInstall,2,N"

[OSR2.Ver.Check]
"rundll32 advpack.dll,LaunchINFSection OSR2_chk.inf,DefaultInstall,2,N"

[OSR21.Ver.Check]
"rundll32 advpack.dll,LaunchINFSection OSR21chk.inf,DefaultInstall,2,N"

What mean "2,N" flags here? http://msdn.microsoft.com/workshop/deliver...hinfsection.asp seems not to describe them.

But OK, in general it means that all three infs (95G_chk.inf, OSR2_chk.inf, OSR21chk.inf) are executed.

What they contain interesting: 95G_chk.inf

[DefaultInstall]
CustomDestination = 95GonlyDestination

[95GonlyDestination]
49000 = W95GonlyReg, 54

[W95GonlyReg]
"HKLM",%Osr2Key%,%Osr2Val%,"",""
"","","","",""

[Strings]
Osr2Key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OptionalComponents"
Osr2Val = "DeskMgmt"

Osr2_chk.inf contains:

[DefaultInstall]
CustomDestination = OSR2onlyDestination

[OSR2onlyDestination]
49001 = OSR2XonlyReg, 22
49002 = OSR2onlyReg, 54

[OSR2XonlyReg]
"HKLM",%Osr2Key%,%Osr2Val%,"",""
"","","","",""

[OSR2onlyReg]
"HKLM",%Osr21Key%,%Osr21Val%,"",""
"","","","",""

[Strings]
Osr2Key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OptionalComponents"
Osr2Val = "DeskMgmt"
OSR21Key = "System\CurrentControlSet\Services\VxD\NTKern"
OSR21Val = "StaticVxD"

and Osr21chk.inf contains:

[DefaultInstall]
CustomDestination = OSR21onlyDestination

[OSR21onlyDestination]
49001 = OSR2XonlyReg, 22
49003 = OSR21onlyReg, 22

[OSR2XonlyReg]
"HKLM",%Osr2Key%,%Osr2Val%,"",""
"","","","",""

[OSR21onlyReg]
"HKLM",%Osr21Key%,%Osr21Val%,"",""
"","","","",""

[Strings]
Osr2Key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OptionalComponents"
Osr2Val = "DeskMgmt"
OSR21Key = "System\CurrentControlSet\Services\VxD\NTKern"
OSR21Val = "StaticVxD"

And for Windows 98 (256015 as an example): 256015up.inf contains

[DefaultInstall]
RunPreSetupCommands = G.Ver.Check
RunPostSetupCommands = SE.Ver.Check

[G.Ver.Check]
"rundll32 advpack.dll,LaunchINFSection 98G_chk.inf,DefaultInstall,2,N"

[SE.Ver.Check]
"rundll32 advpack.dll,LaunchINFSection 98SE_chk.inf,DefaultInstall,2,N"

so again both INFs are executed.

98G_chk.inf contains:

[DefaultInstall]
CustomDestination = 98SEonlyDestination

[98SEonlyDestination]
49000 = W98SEonlyReg, 50

[W98SEonlyReg]
"HKLM",%98SEKey%,%98SEVal1%,"",""
"","","","",""

[Strings]
98SEKey = "Software\Microsoft\Windows\CurrentVersion\Setup\OptionalComponents"
98SEVal1 = "ICS"

98SE_chk.inf contains:

[DefaultInstall]
CustomDestination = 98SEonlyDestination

[98SEonlyDestination]
49000 = W98SEonlyReg, 22

[W98SEonlyReg]
"HKLM",%98SEKey%,%98SEVal1%,"",""
"","","","",""

[Strings]
98SEKey = "Software\Microsoft\Windows\CurrentVersion\Setup\OptionalComponents"
98SEVal1 = "ICS"

Apparently the logic is:

For Windows 95, if value DeskMgmt does not exist, it is Windows 95 Gold (4.00.950), if it exists, but StaticVxD does not exist, it is OSR2 (4.00.1111) and if StaticVxD exists, it is OSR2 with USB supplement, i.e. OSR2.1 or OSR2.5 (4.00.1212 or 4.03.1214).

For Windows 98, if value ICS does not exist, it is Windows 98 Gold (4.10.1998), if it exists, it is Second Edition (4.10.2222).

The only information I was able to find for meaning of the number at the end of the lines in Destionation sections is here: http://www.mdgx.com/INF_web/custdest.htm but there is just

1=prompt user

5=no prompt

but what means 22, 50 and 54?

And how this exactly works?

BTW, is there any way how to force (ADVPACK?) to create the installation log? Something like is visible here for wmp11: http://forums.techarena.in/showthread.php?t=513853

Petr

Link to comment
Share on other sites

  • 1 month later...
BTW, is there any way how to force (ADVPACK?) to create the installation log? Something like is visible here for wmp11: http://forums.techarena.in/showthread.php?t=513853

Petr

not sure. I know under my WinME computer, it creates or appends the AdvpackExt.log and setupapi.log files in the WINDOWS folder when running or using the ADVPACK.DLL file. I'm not sure how "advpack logging" is enabled under ME.

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