Author Topic: updated wim.trid.xml and variants for Windows Imaging Format (WIM)  (Read 3834 times)

jenderek

  • Sr. Member
  • ****
  • Posts: 375
Hello trid users,

some days ago i run TrID with verbose option on Windows imaging found on
install medium for modern Windows systems ( see appended
output/trid-v-old.txt).

Some are not recognized like sample boot-pipe.wim and for some like
install.esd some information is missing. In Trid the recognition is
done by definition file wim.trid.xml.

So first i update missing information parts. There an URL was found that
is at the moment pointing to page on Wikipedia about WIM name. The
correct new URL is about "Windows Imaging Format", a file-based disk
image format. This is now expressed by line
   <RefURL>https://en.wikipedia.org/wiki/Windows_Imaging_Format</RefURL>

Besides filename extension "wim" and "swm" also "esd can be found like
in example install.esd. These 3 extensions are now described by line:
   <Ext>WIM/SWM/ESD</Ext>

In old trid definition mime type is "application/octet-stream". According
to Wikipedia WIM images get their own mime type. This is now expressed
by line:
   <Mime>application/x-ms-wim</Mime>
Now i get a generic trid definition file.

For Windows imaging there exist 3 different file name extensions (*.wim
*.swm *.esd). These can be distinguished by looking at more
internals. Most are described in document "Windows Imaging File
Format.rtf" found on Microsoft server with title like "Windows Imaging
File Format (WIM)".

For an splitted example like boot-swm.swm in header information is
stored that is the first part of two part splitted image. According to
documentation 1 is stored in variable usPartNumber and 2 is stored in
variable usTotalParts for this example. Unfortunately this can not be
used to detect SWM variants, but with negative logic this information can
be used. So variable usTotalParts is always 1 for non splitted images
that do not have SWM file name extension. So in variant
wim-nosplit.trid.xml mention only one file name extension by line
   <Ext>WIM</Ext>

and in global section usTotalParts variable is described by XML
construct:
   <Bytes>0100</Bytes>
   <Pos>42</Pos>
and mention in generic trid definition in remark line that SWM is used for
splitted images.

Microsoft claim to be on way to open source, but as often they tell only
half of the truth. Luckily there exist an open source library for
handling the WIM format, especially on UNIX-like systems.
According to "wimmount" man page for solid WIMs with decimal version
3584 ".esd" file extension is rather used than ".wim". So create variant
wim-esd.trid.xml with additional pattern for dwVersion version with value
3584=00000E00H by XML construct:
   <Bytes>000E0000</Bytes>
   <Pos>12</Pos>
and file name extension is now described by line
   <Ext>ESD</Ext>
So mention these facts in remark line and use man page URL by line
   <RefURL>https://wimlib.net/man1/wimmount.html</RefURL>

Besides the official Microsoft format there exist a wimlib pipable
variant mentioned in man page "wimcapture". So there exist 2
different magic pattern which are handled as WIM-archives. So create
variant wim-pipe.trid.xml with start magic pattern by XML construct:
   <Bytes>574C50574D000000</Bytes>
   <ASCII> W L P W M . . .</ASCII>
   <Pos>0</Pos>
Mention differences by remark line:
   <Rem>pipable variant not compatible with Microsoft?s WIM</Rem>
and use "wimoptimize" man page URL by line
   <RefURL>https://wimlib.net/man1/wimoptimize.html</RefURL>

With the 4 trid definitions all Windows images are now described ( see
appended output/trid-v-new.txt) more precisely also with mime type. TrID
definitions and output are stored in archive wim_trid.zip. I hope that
all 4 XML files can be used in future version of triddefs.

With best wishes
J?rg Jenderek