thedude_:
I have found how to add support for a third-party network driver by adding the driver to the Windows Setup files.
Let's take the example of Intel Pro 1000 NICs (e1000325.sys binary).
Windows XP installation media don't have support for these NICs.
I have edited some inf files in I386 folder and added some lines in relevant sections:
LAYOUT.INF
\[SourceDisksFiles.x86]
e1000325.sys = 1,,171008,,,,,,3,3,,1,4
nete1g32.inf = 1,,49260,,,,,20,0,0
TXTSETUP.SIF
\[SourceDisksNames.x86]
1985= %cdname%,%cdtagfilei%,,"\i386\NLDRV\002"
\[SourceDisksFiles.x86]
nete1g32.inf = 1,,,,,,,20,0,0
e1000msg.dll = 1985,,,,,,,1985,0,0
e1000nt5.din = 1985,,,,,,,1985,0,0
e1000nt5.sys = 1,,,,,,,,3,3,,1,4
e1000nt5.sys = 1985,,,,,,,1985,0,0
e1000325.cat = 1985,,,,,,,1985,0,0
e1000325.din = 1985,,,,,,,1985,0,0
e1000325.inf = 1985,,,,,,,1985,0,0
e1000325.sys = 1,,,,,,,,3,3,,1,4
e1000325.sys = 1985,,,,,,,1985,0,0
etcoinst.dll = 1985,,,,,,,1985,0,0
intelnic.dll = 1985,,,,,,,1985,0,0
prounstl.exe = 1985,,,,,,,1985,0,0
DOSNET.INF
\[Directories]
d12= "\i386\NLDRV\002"
\[Files]
d1,e1000325.sys
d1,nete1g32.inf
d12,e1000msg.dll
d12,e1000nt5.din
d12,e1000nt5.sys
d12,e1000325.cat
d12,e1000325.din
d12,e1000325.inf
d12,e1000325.sys
d12,etcoinst.dll
d12,intelnic.dll
d12,prounstl.exe
DRVINDEX.INF
\[driver]
e1000325.sys
I have also injected the e1000325.sys binary in driver.cab
nete1g32.inf is a special inf file version not available on Intel download center but a customized inf grabbed from M$FT SMS v4 WinPE image and edited to fit my needs.
It's too long to post the full content here.
NETE1G32.INF
; Copyright (c) 2004, Microsoft
\[version]
Signature = "$Windows NT$"
Class = Net
ClassGUID = \{4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Msft%
;LayoutFile = layout.inf
DriverVer=09/15/2004,8.1.8.0
\[Manufacturer]
%Intel% = Intel, NTx86
%IBM% = IBM, NTx86
\[ControlFlags]
ExcludeFromSelect = *
\[Intel.NTx86]
; DisplayName Section DeviceID
; \--
If there is some interest in the full documented method, i need to write some more details (not sure i can reproduce it myself because of lot of try and error before getting the result) and find a place where to post it.
check done only with a single non supported NIC and the client is a guest configured to use an e1000 NIC instead of the standard AMD vlance.
Windows XP Professional.vmx
ethernet0.virtualDev = "e1000"
Will try later with a real box client and Broadcom b57xp32 NIC.
Important notice:
WFP is disabled (using www.nliteos.com to build the ISO) otherwise we cannot edit some protected files like LAYOUT.INF
it's look like infparser script read layout.inf to add the NICs drivers into UDA. nete1g32.inf is only used during the dos part of the windows setup. At the end of installation, installed drivers are digitally signed (e1000325.inf is used)