Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account


Photo

SED, INF, DDF file format description

- - - - -

  • Please log in to reply
59 replies to this topic

#1
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag
Does anybody have detail description of the SED (Self Extraction Directive) files used by IEXPRESS?
Several thing are unclear to me. For example, how to set the target OS to both Windows 98 first and second editions? I tried
TargetWin9xVersion=4.10
recommended here, but it does not work. Then there is some possibility to test a version of specific file, I have found one example at http://www.lv.kernel...tnew/latnet.sed :
TargetFileVersion=#A\IEXPLORE.EXE:4.70.0.1155-:%BrowserWarn%:OK
But what does this mean exactly? Does it work for more versions and more files?
There is also
CDFVersion=3
instead of regular
SEDVersion=3
What this could mean?
And other unclarities.

Is there any decompiler of IEXPRESS packages that would extract the license, the messages and other settings, not just the files in the CAB inside?

Regarding MAKECAB, I've found http://support.micro....com/?id=310618 (d/l at
http://download.micr...n-us/cabsdk.exe )
This is March 1997 version and it contains 33-page Makecab.doc documentation describing the DDF files too.

No newer file was found.

And regarding INF files, there are several sources like Windows 98 DDK
http://msdn.microsof...72ebb16.xml.asp
http://msdn.microsof...b9d8dbb.xml.asp
but it seems to be a bit driver oriented, I'm not sure if there is everything.
Does anybody know any better description?

Petr

Edited by Petr, 24 June 2005 - 01:31 AM.



How to remove advertisement from MSFN

#2
MDGx

MDGx

    98SE2ME + 98MP10

  • Super Moderator
  • 2,678 posts
  • Joined 22-November 04
  • OS:none specified
  • Country: Country Flag
I'm wondering if anybody [except MS] has such info at all, I've also been searching the net, but unfortunately found nothing.
erpdude8 suggested I should email MS, so I can build hotfixes that would install on more than 1 particular 9x OS, because if using
TargetWin9xVersion=4.10.2222
[example], the patch will only install on 98SE, but not on 98FE.
To make it install on 98FE [but not on 98SE], this line must be
TargetWin9xVersion=4.10.1998

As far as I can tell TargetWin9xVersion= [or TargetNTVersion=] must have full OS build in this form:
x.x.xxxx
or
x.xx.xxxx
otherwise won't work.
If using
TargetWin9xVersion=0
the patch won't install on any 9x OS.
Similarly, if using
TargetNTVersion=0
the patch won't install on any NTx OS.
U can combine these 2 lines by adding 1 of each in your SED file, but u can't use more than 1 of each to specify multiple OSes.

BTW:
Newest versions of IEXPRESS.EXE, MAKECAB.EXE + WEXTRACT.EXE [the ones I'm using] are from XP SP2. They work for 9x/ME patches too.
I believe 2003 Server also has these files, but haven't tried.

The SED file you mention:
http://www.lv.kernel...tnew/latnet.sed
is actually taken from NT Option Pack:
http://www.gpick.net...asp/page103.asp
respectively from this CAB file [right-click to save it]:
ftp://tiger.gpick.com/NTOptionPack/windows95/rasics.cab

SED = Self Extraction Directive

CAB SDK + IEAK:
http://www.mdgx.com/add.htm#DEV

Edited by MDGx, 24 June 2005 - 06:18 PM.


#3
eGo®Z

eGo®Z

    Junior

  • Member
  • Pip
  • 70 posts
  • Joined 26-October 04
some years ago i've found so much different manuals on inf-coding,
unfortunately the most of the sources are dead now,
one of 'em is www.crucifer.net - site is under construction more than year,
Posted ImageHere is my local copy of such web manual from that site.
Of course it's not the latest inf-description and sed-files are described not completely, but it is quite good manual.
- hope this helps :blink:

Edited by eGo®Z, 24 June 2005 - 06:24 PM.


#4
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag

Newest versions of IEXPRESS.EXE, MAKECAB.EXE + WEXTRACT.EXE [the ones I'm using] are from XP SP2. They work for 9x/ME patches too.
I believe 2003 Server also has these files, but haven't tried.

Yes, there are really many versions:
iexpress.exe
ieak6: 6.00.2800.1106
win xp: 6.00.2600.0000 (xpclient.010817-1148)
win xp sp2: 6.00.2900.2180 (xpsp_sp2_rtm.040803-2158)
win 2003: 6.00.3790.0 (srv03_rtm.030324-2048)
win 2003 sp1: 6.00.3790.1830 (srv03_sp1_rtm.050324-1447)
wextract.exe
ieak6: 6.00.2800.1106
win xp: 6.00.2600.0000 (xpclient.010817-1148)
win xp sp2: 6.00.2900.2180 (xpsp_sp2_rtm.040803-2158)
win 2003: 6.00.3790.0 (srv03_rtm.030324-2048)
win 2003 sp1: unchanged
advpack.dll
ieak6: 5.1.2600.1106
win xp: 6.00.2600.0000 (xpclient.010817-1148)
win xp sp2: 6.00.2900.2180 (xpsp_sp2_rtm.040803-2158)
win 2003: 6.00.3790.0 (srv03_rtm.030324-2048)
win 2003 sp1: 6.00.3790.1830 (srv03_sp1_rtm.050324-1447)
makecab.exe
ieak6: 5.1.2600.1106
win xp: 5.1.2600.0 (xpclient.010817-1148)
win xp sp2: 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
win 2003: 5.2.3790.0 (srv03_rtm.030324-2048)
win 2003 sp1: unchanged
extrac32.exe
ieak6: 4.11.0603.3
win xp: 5.1.2600.0 (xpclient.010817-1148)
win xp sp2: 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
win 2003: 5.2.3790.0 (srv03_rtm.030324-2048)
win 2003 sp1: unchanged

Appareatly all versions works fine on Windows 98.
I was not able to locate any difference in resources - ut ther must be raeson for so many versions?

Petr

#5
eGo®Z

eGo®Z

    Junior

  • Member
  • Pip
  • 70 posts
  • Joined 26-October 04
also very useful link :thumbup
http://perso.wanadoo.fr/tmcd2/

#6
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag

I'm wondering if anybody [except MS] has such info at all, I've also been searching the net, but unfortunately found nothing.
erpdude8 suggested I should email MS, so I can build hotfixes that would install on more than 1 particular 9x OS, because if using
TargetWin9xVersion=4.10.2222
[example], the patch will only install on 98SE, but not on 98FE.
To make it install on 98FE [but not on 98SE], this line must be
TargetWin9xVersion=4.10.1998

As far as I can tell TargetWin9xVersion= [or TargetNTVersion=] must have full OS build in this form:
x.x.xxxx
or
x.xx.xxxx
otherwise won't work.
If using
TargetWin9xVersion=0
the patch won't install on any 9x OS.
Similarly, if using
TargetNTVersion=0
the patch won't install on any NTx OS.
U can combine these 2 lines by adding 1 of each in your SED file, but u can't use more than 1 of each to specify multiple OSes.

<{POST_SNAPBACK}>


Elementary, my dear Watson.

Some deductive works and tests and here is the result:

TargetWin9xVersion=aa.bb.cc-dd.ee.ff,gg.hh.ii-jj.kk.ll

it means from version aa.bb.cc to version dd.ee.ff and from version gg.hh.ii to version jj.kk.ll.

Can be simplified as

TargetWin9xVersion=aa.bb.cc,gg.hh.ii (it means just versions aa.bb.cc and gg.hh.ii)
TargetWin9xVersion=aa.bb.cc-dd.ee.ff (it means versions between aa.bb.cc and dd.ee.ff)

TargetWin9xVersion=0 means version 0 only => never wil install on W9x
TargetWin9xVersion= or no line at all: will install always on W9x
TargetWin9xVersion=4.10.1998- means 4.10.1998 and above

TargetWin9xVersion=4.10.1998 is the same as TargetWin9xVersion=4.10.1998-4.10.1998

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

the same for TargetNTVersion

Is anybody able to test it?

Petr

Edited by Petr, 26 June 2005 - 09:27 AM.


#7
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag
And just to add how it appears to be with the TargetFileVersion directive:
Example is:
TargetFileVersion=#A\IEXPLORE.EXE:4.70.0.1155-:%BrowserWarn%:OK

#A means probably application
#S means system file (located in %windir%\system)
Maybe ther are other possibilities, I don't know.

For version number(s) it the same as for TargetWin9xVersion, but versipn has 4 parts, i.e. it can look like:
TargetFileVersion=#A\APPLICATION.EXE:1.2.3.4-3.4.5.6,5.6.7.8-6.7.8.9:%AppWarning%:OK

I'm still not sure what means the "OK" at the end and what are other possibilities.

BTW, some coder could write very simple tool that would just show the required OS version and FileVersion for given iexpress package.
FileVersions are coded as 4 words (8 bytes total) is the following sequence: For version a.b.c.d the order in the file is b,a,d,c,, no limit = FFFFFFFF
OSVersions are coded as 3 doublewords (12 bytes total) ordered naturally, no limit is FFFFFFFFFFFF.

Petr

Edited by Petr, 06 July 2005 - 06:22 AM.


#8
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag
Does anybody know how to make very long list of "CopyFiles" in INF files?

If I make very long line like:

[DefaultInstall]
SmartReboot          = N
CustomDestination    = CustomDestination.Section
CopyFiles            = Copy.Boot,Copy.Cab, Copy.Command, Copy.EBD, Copy.Font, Copy.Grphflt, Copy.Grphflt2, Copy.Help, Copy.HT, Copy.Inf, Copy.IOSubSys, Copy.Machine, Copy.Media, Copy.MSADC, Copy.MSDA, Copy.msinfo, Copy.MUI, Copy.System, Copy.System32, Copy.SysBckup, Copy.TC, Copy.Triedit, Copy.Tvviewer, Copy.VMM32, Copy.KB891711
(white spaces added not to break msfn page layout)

I will get rundll/advack crash.

Is there any known length limit?

How to avoid this?

I have only one idea - to chain 2 INF files, not very nice.

Petr

Edited by Petr, 26 June 2005 - 07:00 PM.


#9
MDGx

MDGx

    98SE2ME + 98MP10

  • Super Moderator
  • 2,678 posts
  • Joined 22-November 04
  • OS:none specified
  • Country: Country Flag

Does anybody know how to make very long list of "CopyFiles" in INF files?

If I make very long line like:

[DefaultInstall]
SmartReboot          = N
CustomDestination    = CustomDestination.Section
CopyFiles            = Copy.Boot,Copy.Cab, Copy.Command, Copy.EBD, Copy.Font, Copy.Grphflt, Copy.Grphflt2, Copy.Help, Copy.HT, Copy.Inf, Copy.IOSubSys, Copy.Machine, Copy.Media, Copy.MSADC, Copy.MSDA, Copy.msinfo, Copy.MUI, Copy.System, Copy.System32, Copy.SysBckup, Copy.TC, Copy.Triedit, Copy.Tvviewer, Copy.VMM32, Copy.KB891711
(white spaces added not to break msfn page layout)

I will get rundll/advack crash.

Is there any known length limit?

How to avoid this?

I have only one idea - to chain 2 INF files, not very nice.

Petr

Petr,

Wow, looks like u solved the SED "Targetxx" problem.
Many thanks for your hard work.

I'll try your tips to recreate some of my iexpress packages to make them install on both 98FE + 98SE.

I found something about INF "CopyFiles" directive length limit @ MSDN:
http://msdn.microsof...fb2d300.xml.asp
and other good to know INF limits.

But here is my idea [besides deleting all spaces, which I'm sure you've done already]:
try to shorten each string to 1, 2 or 3 characters.
Example [applies to the 1 u posted] = broken in half by 1 space so it will fit in this page:
CopyFiles=CBT,CCB,CMD,CEB,CF,CGR,CGR2,CHL,CHT,CIN,CIO,CMA,CME, CMS,CMI,CMU,CS,CS32,CSB,CTC,CTR,CTV,CVM,CKB891711
This way string length was reduced from 285 chars to 102 chars [not counting the "CopyFiles" string]. Now it should work ok.

Hope this helps.

Edited by MDGx, 26 June 2005 - 07:54 PM.


#10
ack-hh

ack-hh

    Newbie

  • Member
  • 43 posts
  • Joined 25-May 05

Is there any known length limit?

from http://msdn.microsof...fb2d300.xml.asp :
"INF Size Limits
A Windows 9x/Me INF file cannot be larger than 64 kilobytes.
There is no practical limit to the size of an INF file for NT-based systems.
Unless otherwise restricted in this documentation, the maximum length of
any INF file field is 512 characters (including a terminating NULL character).

Note, however, that Plug and Play may impose a more restrictive limit
for certain INF file fields that it recognizes or uses, such as device description,
driver provider, and device manufacturer."

HTH
Andreas

#11
MDGx

MDGx

    98SE2ME + 98MP10

  • Super Moderator
  • 2,678 posts
  • Joined 22-November 04
  • OS:none specified
  • Country: Country Flag
Petr,

All your "TargetWinxx=" directive tips checked out ok.
Many thanks.

Therefore I repacked these iexpress updates [same file sizes as old files]:
98KRNLUP.EXE = replaces both FEKRNLUP.EXE + SEKRNLUP.EXE
Q249824.EXE = replaces both F249824.EXE + old Q249824.EXE

* Unofficial Windows 98/98 SE KRNL386.EXE build 4.10.1999 Fix [172 KB, English]:
http://www.mdgx.com/files/98KRNLUP.EXE
This Fix may correct Kernel errors after installing Cursor + Icon Handling Fixes.

* Unofficial Windows 98/98 SE 255 Devices Additions + Removals Error VOLTRACK.VXD build 4.10.1999 Fix:
http://support.micro....com/?id=249824
Direct download [105 KB, English]:
http://www.mdgx.com/files/Q249824.EXE

Posted here:
http://www.mdgx.com/web.htm#98SE

I've tried them and they work properly with 98 SE and 98 FE.

#12
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag
Some additional observations reagrding iexpress SED files:

Extended syntax for Taget OS check:
TargetWin9xVersion=4.10.1999-4.10.2222:%OSWarn%:YesNo
%OSWarn% is text that is displayed
The last parameter may be OK, YesNo or OKCancel, it describes the behavior in case of error:
OK: just OK button is shown and install will not start.
OKCancel: Cancel is selected by default, OK will start the installation
YesNo: No is selected by default, Yes will start the installation

Example:
TargetWin9xVersion=4.10.2222:%OSWarn%:OK
[Strings]
OSWarn="This Service Pack is for Windows 98 Second Edition Only!"

The same can be used for TargetFileVersion. The syntax seems to be:
For one file:
TargetFileVersion=#A\IEXPLORE.EXE:4.72.3110.0:%BrowserWarn%:OK
For more files:
TargetFileVersion=@FileSectionList
[FileSectionList]
1=#S\BROWSEUI.DLL:5.0.3314.2100-5.0.3537.700:%BrowserWarn%:OK
2=#S\INSENG.DLL:5.0.3314.2101-5.0.3533.2600:%BrowserWarn%:OK
3=#S\MSHTML.DLL:5.0.3314.2100-5.0.3541.2700:%BrowserWarn%:OK
4=#S\MSRATING.DLL:5.0.3314.2100-5.0.3539.2200:%BrowserWarn%:OK
5=#S\PNGFILT.DLL:5.0.3314.2100-5.0.3541.2700:%BrowserWarn%:OK
6=#S\SHDOCVW.DLL:5.0.3314.2100-5.0.3537.700:%BrowserWarn%:OK
7=#S\SHLWAPI.DLL:5.0.3314.2100-5.0.3900.7033:%BrowserWarn%:OK
8=#S\URLMON.DLL:5.0.3314.2100-5.0.3537.700:%BrowserWarn%:OK
9=#S\WININET.DLL:5.0.3314.2100-5.0.3539.1800:%BrowserWarn%:OK
#W = %windir%
#S = %windir%\SYSTEM
#A = Application, full patch is checked
If not found, search is repeated with .DLL suffix added.

Two examples for SE SP:
TargetFileVersion=#A\IEXPLORE.EXE:6.0.2800.1106:%BrowserWarn%:OKCancel
[Strings]
BrowserWarn="Internet Explorer 6.0 SP1 should be installed before SESP!"

TargetFileVersion=#S\VERSION.DLL:4.90.0.3000:%MEWarn%:YesNo
[Strings]
MEWarn="98SE2ME seems to be installed, do you want to continue?"

Both may be combined.

Other possible directives in [Options] section, not used in SESP SED file:
PackageInstallSpace(KB)=10000 - self-explanatory
KeepCabinet=1 - do not delete the CAB file after package creation
MultiInstanceCheck=1 - not tested yet

CheckAdminRights=1 - probably for NT only
Here I don't know the purpose:
VersionInfo=VersionSection
[VersionSection]
ProductName=%ProductName%
and also not tested wher and how to use:
AppErrorCheck
AlwaysPropogateCmdExitCode
PropogateCmdExitCode
UpdateAdvDlls
PlatformDir

It seems I should really ask Microsoft if there is any detail specification of SED/CDF files.

And something about iexpress packages. They are created by adding resources to WEXTRACT.EXE, so any resource editor can be used check what the package contains and what it does. It can be used for checking unknown packages or testing if everyting is correct for newly built package before distributing.
The resource type is RCData and there are the following resources, some of them are optional:

ADMQCMD - AdminQuietInstCmd
CABINET - full cabinet file, generated by iexpress
EXTRACTOPT - HideExtractAnimation
FILESIZES - generated by iexpress
FINISHMSG - FinishMessage
INSTANCECHECK - MultiInstanceCheck
LICENSE - DisplayLicense
PACKINSTSPACE - PackageInstallSpace(KB)
POSTRUNPROGRAM - PostInstallCmd
REBOOT - RebootMode
RUNPROGRAM - AppLaunched
SHOWWINDOW - ShowInstallProgramWindow
TITLE - FriendlyName
UPROMPT - InstallPrompt
USRQCMD - UserQuietInstCmd
VERCHECK - TargetNTVersion, TargetWin9xVersion, TargetFileVersion

So any coder could easily write small utility that would re-create SED file from existing iexpress package and/or display all the settings.

Petr

#13
MDGx

MDGx

    98SE2ME + 98MP10

  • Super Moderator
  • 2,678 posts
  • Joined 22-November 04
  • OS:none specified
  • Country: Country Flag
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.paraglide...vRegToInf02.zip
ConvRegToInf requires NFR 1.0 or newer already installed:
http://msdn.microsof...s/framework1_1/

ConvRegToInf's INF file HKXX [HKEY_XXX_XXX] Hive Keys entries are in hex code, eg:

0x1
0x2
0x3
0x4
etc

instead of MS default usage:

HKLM\Software
HKCU
HKU\.Default
HKCR
etc

Also, if using any REG_SZ [String Value], you need to modify the resulting INF file to add an extra comma [ , ] before "Value Data" to make it work properly:

ConvRegToInf outputs to:

0x1,"SubKey_Name","REG_SZ Value Name","Value Data"

needs to be modified to:

HKLM,"SubKey_Name","REG_SZ Value Name",,"Value Data"

I found ConvRegToInf very useful with huge REG files that need to be loaded in INF format.

If anybody cares to see an example of using ConvRegToInf, please d/l GRPHFLTS.EXE [1.65 MB, packed with iexpress]:
http://www.mdgx.com/files/GRPHFLTS.EXE
posted here:
http://www.mdgx.com/add.htm#PNT
Open the EXE in PowerArchiver or WinZip 9.xx:
http://www.mdgx.com/toy.htm#ZIP
extract GF.INF, then open GF.INF into Notepad and look under the [RF] section.
And if u wish to obtain my GF.REG file, please email me.

Hope this helps.

Edited by MDGx, 07 July 2005 - 04:44 AM.


#14
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag
I've found the newest set of iexpress and other tools here:

http://download.micr...AEA77/mpedp.exe

There is also nice tool for displaying version numbers filever.exe, this is its output for all executables in this package:
W32i   DLL ENU   6.0.2900.2172 shp     99,840 06-17-2005 advpack.dll
W32i   APP ENU   5.1.2600.2172 shp     85,504 06-17-2005 makecab.exe
W32i   APP ENU   6.0.2900.2172 shp    114,688 06-17-2005 iexpress.exe
W32i   APP ENU   6.0.2900.2172 shp     65,536 06-17-2005 wextract.exe
W16    DLL ENU      4.71.704.0 shp      2,272 06-17-2005 w95inf16.dll
W32i   APP ENU       4.71.16.0 shp      4,608 06-17-2005 w95inf32.dll

W32i   APP   -     1.50.2421.1 shp     50,688 06-17-2005 msiinfo.exe
W32i   APP ENU      5.0.2195.1 shp     45,056 06-17-2005 uuidgen.exe
W32i     -   -               -   -     12,288 06-17-2005 wixgen.exe
W32i     -   -               -   -     53,248 06-17-2005 snapreg.exe
W32i     -   -               -   -    172,032 06-17-2005 mpedp.exe
W32i     -   -               -   -     12,656 06-17-2005 rebootchk.exe
W32i   APP ENU      5.0.2090.1 shp      4,880 06-17-2005 sleep.exe
W32i   APP ENU      5.2.3754.0 shp     14,336 06-17-2005 filever.exe
W32i   APP ENU      6.0.2600.0 shp    130,048 06-17-2005 nullvis.exe

Petr

#15
Acheron

Acheron

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 988 posts
  • Joined 28-June 04
  • OS:XP Pro x86
  • Country: Country Flag
Windows XP SP2 contains already newer Iexpress by default.
Say no to bloatware. Download Nero Lite!

#16
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag

Windows XP SP2 contains already newer Iexpress by default.

<{POST_SNAPBACK}>


You are right, I was confused by the date of all files....

And even newer version is in Server 2003 SP1 - 6.00.3790.1830 (srv03_sp1_rtm.050324-1447).

Unfortunately there is no changelog.

Petr

#17
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag

I'm wondering if anybody [except MS] has such info at all, I've also been searching the net, but unfortunately found nothing.
erpdude8 suggested I should email MS...

<{POST_SNAPBACK}>


So I've got probably official information from Microsoft: Even in the Microsoft internal database, there is no idocumentation for IExpress.

Strange. The only possibility is to find the coder who writes IExpress then.

Petr

#18
zachdms

zachdms
  • Member
  • 2 posts
  • Joined 03-August 05

I'm wondering if anybody [except MS] has such info at all, I've also been searching the net, but unfortunately found nothing.
erpdude8 suggested I should email MS...

<{POST_SNAPBACK}>


So I've got probably official information from Microsoft: Even in the Microsoft internal database, there is no idocumentation for IExpress.

Strange. The only possibility is to find the coder who writes IExpress then.

Petr

<{POST_SNAPBACK}>

Who told you that?

What's the Question needing documentation?

#19
erpdude8

erpdude8

    MSFN Master

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,140 posts
  • Joined 24-November 04

also very useful link :thumbup
http://perso.wanadoo.fr/tmcd2/


sorry eGo®Z. that link is now a dead one.

Is there any known length limit?

from http://msdn.microsof...fb2d300.xml.asp :
"INF Size Limits
A Windows 9x/Me INF file cannot be larger than 64 kilobytes.
There is no practical limit to the size of an INF file for NT-based systems.
Unless otherwise restricted in this documentation, the maximum length of
any INF file field is 512 characters (including a terminating NULL character).

Note, however, that Plug and Play may impose a more restrictive limit
for certain INF file fields that it recognizes or uses, such as device description,
driver provider, and device manufacturer."

HTH
Andreas


The MSDN link is now dead. New MSDN link to Creating INF files:
http://msdn.microsof...fb2d300.xml.asp

BTW - how do the slayout.inf, slayout1.inf, slayout2.inf files from the 98se SP work? how are they created? I like to learn because I may be willing to update the 98FE SP2 pack just this one time. I may post up a beta of the 98fe SP2 since nobody seems to be doing anything about it right now.

Edited by erpdude8, 22 June 2006 - 02:43 PM.


#20
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag

BTW - how do the slayout.inf, slayout1.inf, slayout2.inf files from the 98se SP work? how are they created? I like to learn because I may be willing to update the 98FE SP2 pack just this one time. I may post up a beta of the 98fe SP2 since nobody seems to be doing anything about it right now.


Originally they were built manually, then I wrote simple batch file for auto-generation of most of the necessary files.

I used the following .BAT file, I hope it is correct:
echo .Set CabinetNameTemplate=files\SP2.CAB >sp2.ddf
echo .Set Compress=on >>sp2.ddf
echo .Set CompressionType=LZX >>sp2.ddf
echo .Set CompressionLevel=7 >>sp2.ddf
echo .Set CompressionMemory=21 >>sp2.ddf
echo .Set RptFileName=SP2.RPT >>sp2.ddf
echo .Set MaxDiskSize=CDROM >>sp2.ddf
echo .Set ReservePerCabinetSize=0 >>sp2.ddf
echo .Set DiskDirectoryTemplate= >>sp2.ddf
echo .Set Cabinet=ON >>sp2.ddf
echo .Set MaxCabinetSize=999999999 >>sp2.ddf
echo .Set InfFileName=files\SLAYOUT1.INF >>sp2.ddf
echo .Set InfHeader= >>sp2.ddf
echo .Set InfDiskHeader=";Auto generated file - do not edit!" >>sp2.ddf
echo .Set InfDiskHeader1=[Version] >>sp2.ddf
echo .Set InfDiskHeader2=Signature="$CHICAGO$" >>sp2.ddf
echo .Set InfDiskHeader3=SetupClass=BASE >>sp2.ddf
echo .Set InfDiskLineFormat= >>sp2.ddf
echo .Set InfCabinetHeader=[SourceDisksNames] >>sp2.ddf
echo .Set InfCabinetLineFormat=*cab#*="Unofficial Service Pack for Windows 98 SE","SP2.CAB",0 >>sp2.ddf
echo .Set InfFileHeader= >>sp2.ddf
echo .Set InfFileHeader1=[SourceDisksFiles] >>sp2.ddf
echo .Set InfFileLineFormat=*file*=*cab#*,,*size*,*csum* >>sp2.ddf
echo .Set InfFooter= >>sp2.ddf
echo .Set SourceDir=files\sp2 >>sp2.ddf
echo. >>sp2.ddf
dir /b /on files\sp2\*.*  >>sp2.ddf

echo .Set CabinetNameTemplate=files\SUPP.CAB >SUPP.ddf
echo .Set Compress=on >>SUPP.ddf
echo .Set CompressionType=LZX >>SUPP.ddf
echo .Set CompressionLevel=7 >>SUPP.ddf
echo .Set CompressionMemory=21 >>SUPP.ddf
echo .Set RptFileName=SUPP.RPT >>SUPP.ddf
echo .Set MaxDiskSize=CDROM >>SUPP.ddf
echo .Set ReservePerCabinetSize=0 >>SUPP.ddf
echo .Set DiskDirectoryTemplate= >>SUPP.ddf
echo .Set Cabinet=ON >>SUPP.ddf
echo .Set MaxCabinetSize=999999999 >>SUPP.ddf
echo .Set InfFileName=files\SLAYOUT2.INF >>SUPP.ddf
echo .Set InfHeader= >>SUPP.ddf
echo .Set InfDiskHeader=";Auto generated file - do not edit!" >>SUPP.ddf
echo .Set InfDiskHeader1=[Version] >>SUPP.ddf
echo .Set InfDiskHeader2=Signature="$CHICAGO$" >>SUPP.ddf
echo .Set InfDiskHeader3=SetupClass=BASE >>SUPP.ddf
echo .Set InfDiskLineFormat= >>SUPP.ddf
echo .Set InfCabinetHeader=[SourceDisksNames] >>SUPP.ddf
echo .Set InfCabinetLineFormat=*cab#*="Unofficial Service Pack for Windows 98 SE","SUPP.CAB",0 >>SUPP.ddf
echo .Set InfFileHeader= >>SUPP.ddf
echo .Set InfFileHeader1=[SourceDisksFiles] >>SUPP.ddf
echo .Set InfFileLineFormat=*file*=*cab#*,,*size*,*csum* >>SUPP.ddf
echo .Set InfFooter= >>SUPP.ddf
echo .Set SourceDir=files\SUPP >>SUPP.ddf
echo. >>SUPP.ddf
dir /b /on files\SUPP\*.*  >>SUPP.ddf

"C:\Program Files\IEAK6\tools\makecab.exe"  /f sp2.ddf
"C:\Program Files\IEAK6\tools\makecab.exe"  /f supp.ddf

"C:\Program Files\IEAK6\tools\iexpress.exe" /n 21sesp.sed

del sp2.rpt
del supp.rpt
del sp2.ddf
del supp.ddf

and the following 21sesp.sed file:
[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=0
HideExtractAnimation=0
UseLongFileName=0
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=I
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
TargetWin9xVersion=4.10.2222
TargetNTVersion=0
MultiInstanceCheck=1
[Strings]
InstallPrompt=
DisplayLicense=files\LICENSE.TXT
FinishMessage=
TargetName=sesp211en.exe
FriendlyName=Windows98 SE SP 2.1.1 (English)
AppLaunched=INFEX.EXE
PostInstallCmd=<None>
AdminQuietInstCmd=SPUPDATE.INF
UserQuietInstCmd=SPUPDATE.INF
FILE0="WUINFO.INF"
FILE1="891711UN.INF"
FILE2="ASPI.INF"
FILE3="CRLUPD.EXE"
FILE4="DOSHERE.INF"
FILE5="GETVER.EXE"
FILE6="INFEX.EXE"
FILE7="INFEX.INI"
FILE8="INSTMSIA.EXE"
FILE9="LICENSE.TXT"
FILE10="LOGO.INF"
FILE11="NOTEPAD.INF"
FILE12="PRESERVE.INF"
FILE13="Q329414.EXE"
FILE14="ROOTSUPD.EXE"
FILE15="RUNPOST.BAT"
FILE16="SCR56.INF"
FILE17="SHELL.INF"
FILE18="SHELLRB.BAT"
FILE19="SHELLRB.INF"
FILE20="SLAYOUT1.INF"
FILE21="SLAYOUT2.INF"
FILE22="SLEEK.INF"
FILE23="SP2.CAB"
FILE24="SPUNINST.INF"
FILE25="SPUPDATE.INF"
FILE26="SUPP.CAB"
FILE27="TWEAKS.INF"
FILE28="TWEAKUI.CNT"
FILE29="TWEAKUI.CPL"
FILE30="TWEAKUI.HLP"
FILE31="TWEAKUI.INF"
FILE32="W2KCOLOR.INF"
FILE33="WBEM15UP.INF"
[SourceFiles]
SourceFiles0=files\
[SourceFiles0]
%FILE0%=
%FILE1%=
%FILE2%=
%FILE3%=
%FILE4%=
%FILE5%=
%FILE6%=
%FILE7%=
%FILE8%=
%FILE9%=
%FILE10%=
%FILE11%=
%FILE12%=
%FILE13%=
%FILE14%=
%FILE15%=
%FILE16%=
%FILE17%=
%FILE18%=
%FILE19%=
%FILE20%=
%FILE21%=
%FILE22%=
%FILE23%=
%FILE24%=
%FILE25%=
%FILE26%=
%FILE27%=
%FILE28%=
%FILE29%=
%FILE30%=
%FILE31%=
%FILE32%=
%FILE33%=

The required directory structure is as follows:
top level - just these two files (and later the generated file is here too)
1st level subdirectory: "files" contains complete unpacked service pack (with or without the following files, they are generated automatically or not required: sp2.cab, supp.cab, slayout1.inf, slayout2.inf, advpack.dll, W95inf16.dll, W95inf32.dll)
2nd level subdirectory (inside the "files" directory): There are two directories, sp2 and supp, containing files belonging to sp2.cab and supp.cab respectively.

How it works? The .bat file does the following tasks:
1. create sp2.ddf and supp.ddf files
2. makecab will use these files to create slayout1.inf, slayout2.inf, sp2.cab and supp.cab
3. iexpress will package everything together to the final package
4. all temporary files are deleted.

Maybe it is nice solution - but it wors, and is not dependent on the location of the root directory.

I hope it is correct - I did it more than half year ago.

Petr

#21
the_guy

the_guy

    Creator of the Windows ME Service Pack

  • Member
  • PipPipPipPipPip
  • 914 posts
  • Joined 15-July 05
  • OS:ME
  • Country: Country Flag
@Petr,

that is the batch file I use for the ME SP. It works fine for me.

the_guy
Creator of the Windows ME Service Pack.

#22
erpdude8

erpdude8

    MSFN Master

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,140 posts
  • Joined 24-November 04

@Petr,

that is the batch file I use for the ME SP. It works fine for me.

the_guy


thanks Petr & the_guy.

BTW - the_guy, the link to ME Service Pack 2 beta 3 is now dead. Are you almost ready to post up beta 4 of ME SP?

#23
erpdude8

erpdude8

    MSFN Master

  • Member
  • PipPipPipPipPipPipPipPip
  • 2,140 posts
  • Joined 24-November 04

And just to add how it appears to be with the TargetFileVersion directive:
Example is:
TargetFileVersion=#A\IEXPLORE.EXE:4.70.0.1155-:%BrowserWarn%:oK

#A means probably application
#S means system file (located in %windir%\system)
Maybe ther are other possibilities, I don't know.

For version number(s) it the same as for TargetWin9xVersion, but versipn has 4 parts, i.e. it can look like:
TargetFileVersion=#A\APPLICATION.EXE:1.2.3.4-3.4.5.6,5.6.7.8-6.7.8.9:%AppWarning%:oK

I'm still not sure what means the "OK" at the end and what are other possibilities.

BTW, some coder could write very simple tool that would just show the required OS version and FileVersion for given iexpress package.
FileVersions are coded as 4 words (8 bytes total) is the following sequence: For version a.b.c.d the order in the file is b,a,d,c,, no limit = FFFFFFFF
OSVersions are coded as 3 doublewords (12 bytes total) ordered naturally, no limit is FFFFFFFFFFFF.

Petr


and what will happen when %BrowserWarn% or %AppWarning% is used? What kind of message will %BrowserWarn% or %AppWarning% be displayed if you have defined one?

-erpdude

#24
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag

and what will happen when %BrowserWarn% or %AppWarning% is used? What kind of message will %BrowserWarn% or %AppWarning% be displayed if you have defined one?

-erpdude


It will display what you will define.

This is an example taken from some older IE 5.01 update:

TargetWin9xVersion=4.10.1998-:%OSWarn%:OK
TargetNTVersion=0:%OSWarn%:OK
TargetFileVersion=@FileSectionList

[FileSectionList]
1=#S\BROWSEUI.DLL:5.0.3314.2100-5.0.3537.700:%BrowserWarn%:OKCancel
2=#S\INSENG.DLL:5.0.3314.2101-5.0.3533.2600:%BrowserWarn%:OKCancel
3=#S\MSHTML.DLL:5.0.3314.2100-5.0.3541.2700:%BrowserWarn%:OK
4=#S\MSRATING.DLL:5.0.3314.2100-5.0.3539.2200:%BrowserWarn%:OK
5=#S\PNGFILT.DLL:5.0.3314.2100-5.0.3541.2700:%BrowserWarn%:OK
6=#S\SHDOCVW.DLL:5.0.3314.2100-5.0.3537.700:%BrowserWarn%:OK
7=#S\SHLWAPI.DLL:5.0.3314.2100-5.0.3900.7033:%BrowserWarn%:OK
8=#S\URLMON.DLL:5.0.3314.2100-5.0.3537.700:%BrowserWarn%:OK
9=#S\WININET.DLL:5.0.3314.2100-5.0.3539.1800:%BrowserWarn%:OK

[Strings]
OSWarn=The version of Windows you have installed does not match the update you are trying to install.
BrowserWarn=The version of Internet Explorer you have installed does not match the update you are trying to install.

In this example if you will try to install the package on any Windows 9x with lower version number than 4.10.1998 (i.e. Windows 95", you will receive "The version of Windows you have installed does not match the update you are trying to install." error message. If you will try to install this package on a system that contains wrong version of the a.m. files then you will receive "The version of Internet Explorer you have installed does not match the update you are trying to install." error message.

Is this explanation sufficient?

Petr

#25
MDGx

MDGx

    98SE2ME + 98MP10

  • Super Moderator
  • 2,678 posts
  • Joined 22-November 04
  • OS:none specified
  • Country: Country Flag
I have uploaded the INF + Iexpress guide here:
http://www.mdgx.com/INF_web/
If you prefer to read the INF + IEXPRESS guide offline, download the ZIP, unZIP it + open index.htm in your favorite web browser [HTML Format, 378 KB, English]:
http://www.mdgx.com/...web/INF_WEB.ZIP

Linked from here:
http://www.mdgx.com/add.htm#INF

HTH




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users



How to remove advertisement from MSFN