A lot of the Microsoft and other documentation is incomplete and\or wrong! I have not found a single complete description, so I thought I would post it here.
I experimented a lot and I think this is the correct execution order...
- Winpeshl.exe is run (required file - must not be deleted) - if winpeshl.ini exists the application(s) specified in X:\Windows\system32\winpeshl.ini are run.
- If the winpeshl.ini file exists but is invalid, a cmd shell will be opened and the process will stop.
- If winpeshl.ini does not exist then X:\Setup.exe is run, if it exists.
- X:\Setup.exe allows the user to choose a language and then choose either Repair or Install - if you choose Install it runs X:\sources\setup.exe.
- The \Sources\Setup.exe will look on all drives for a \Sources folder containing both the file "setup.exe" and a install.wim, install.swm or install.esd file in the same folder - if not found it will prompt you to install CD\DVD drivers.
- Windows can then be installed using the \Sources\install.* files.
- If no winpeshl.ini file is found and no X:\Setup.exe is found then cmd /k X:\Windows\system32\startnet.cmd is run.
- Usually, Windows PE's boot.wim install images contain the X:\Windows\system32\Startnet.cmd file which just contains the command Wpeinit.
- Wpeinit.exe loads network resources and coordinates with networking components like DHCP. It also loads a X:\Unattend.xml file (if it exists) to process settings such as firewall, network and display settings.
- When Wpeinit.exe completes, the Command Prompt window is displayed.
- The boot process of Windows PE is complete.
Read more: http://www.easy2boot.com/faq-/wimboot/