As I have been writing the code for BartPE I have learned a great deal about the workings of the Base.
Bâshrat the Sneaky is still the only one who knows all, and he may have things to add or correct here. BUT...
The main two differences between M1 and M2 are compression method and availability to setup.
M1
Uses standard windows CAB compression and puts the driver files in the $OEM$\$1\ folder on the installation CD/DVD.
The $OEM$\$1\ folder is copied to the root folder of the drive windows will be installed on by windows Text-Mode setup.
- IE They are copied from the installation media to %SystemRoot%\D (Usually C:\D\[selected pack contents here] )
The path to every driver folder is then added to WINNT.SIF [unnattended] section OemPnpDriversPath=
This is where you can tell Setup to search driver folders to find a better match than what's in the existing drivers.cab on the Windows CD. If it finds a better match it will install those instead.
cmdlines.txt sets the finisher to run based on user selection GUIRunOnce or RunOnceExe
Disadvantage: The current driverpacks folder structure is over 6000 characters long so only the first 4096 will be used by setup
Advantage: The drivers are available for the entire GUI portion of setup.
I find this personaly useful because I use VMWare and the VMWare sound card emulates a SoundBlaster 128 which is natively supported by windows XP. Useing M2 The included XP driver will be loaded during setup instead of the one in the pack. The XP SB128 driver fails in VMWare (yellow exclamation point). The DriverPacks include the updated SB128 driver which works wonderfully but only if M1 is used. I use WPI with background music. If I use method two I get no sound when WPI runs and I must go into device manger and update the device manualy. Sometimes when I use M2 I will launch vmware tools installer previous to WPI when i set the runonce entries from txtsetup.cmd (it will not install and exit silently if not in a VMWare shell)
M2
Uses the awesome power of 7-Zip to achive near solid compression of the packs and copy them to a folder named OEM on the CD/DVD. PRESETUP.CMD is called from DOSNET.INF and used to decompress the drivers from the installation media to %SystemRoot%\D (Usually C:\D\[selected pack contents here] ) then DevPath.exe is used to update the path windows searches to find drivers. (setup is not affected by the 4096 limit now) then GUIRunOnce or RunOnceexe is set with "%SystemDrive%\DPsFnshr.exe"
Both methods
when the first logon occurs the finisher will either;
Keep The Driver (KTD) and then run DevPath.exe to update the path windows searches to find drivers
or Delete the files
there is more but that should invite good questions
Last edited by OverFlow (2007-04-22 14:07:27)