I just wanted to mention that i found WinstallLE extremely usefull for stuff like this (its on the win2k CD under VALUEADDrd Party). It tracks files installed by software as well as any registry changes made. so it basically gives you everything the software needs to be \"installed\", so you can in theory slipstream anything in this fashion.
For those interested, the windows registry setup is also located in TXTSETUP.SIF and its easy to modify. Below is what I did to integrate the (modifiied) direct x infs:
[HiveInfs.Fresh]
AddReg = hivedef.inf,AddReg
AddReg = hivesys.inf,AddReg
AddReg = hivesft.inf,AddReg
AddReg = hivecls.inf,AddReg
AddReg = hiveusd.inf,AddReg
AddReg = wsh.inf,AddReg.WSH
AddReg = dmreg.inf,DM.AddReg
AddReg = diactfrm.inf,add.reg
AddReg = dmusic.inf,add.reg
AddReg = dmusic.inf,add.dx8reg
AddReg = dplay.inf,add.reg
AddReg = dsound.inf,DirectSound.AddReg
AddReg = dxntunp.inf,add.reg
AddReg = dxver.inf,D3D_Retail
AddReg = dxver.inf,add.reg
AddReg = ksreg.inf,PlugInRegistration
AddReg = ksreg.inf,DeviceRegistration
AddReg = dxver.inf,Win2K_Drivers32
AddReg = dxver.inf,BDA_InstallDevices
AddReg = dxver.inf,add.dxsetup
[HiveInfs.Fresh.RemoteBoot]
AddReg = hivesys.inf,AddReg.RemoteBoot
[HiveInfs.Upgrade]
DelReg = hivedef.inf,DelRegFirst
DelReg = hivesft.inf,DelRegFirst
AddReg = hivedef.inf,AddReg
DelReg = hivedef.inf,DelReg
AddReg = hivesys.inf,AddReg
DelReg = hivesys.inf,DelReg
AddReg = hivesys.inf,AddReg.Upgrade
AddReg = hivesft.inf,AddReg.Upgrade
AddReg = hivesft.inf,AddReg
DelReg = hivesft.inf,DelReg
AddReg = hivecls.inf,AddReg
DelReg = hivecls.inf,DelReg
AddReg = hiveusd.inf,AddReg
AddReg = wsh.inf,AddReg.WSH
AddReg = dmreg.inf,DM.AddReg
DelReg = dmreg.inf,DM.DelReg
The only catch is that the inf parsing engine is not as \"smart\" as the normal win2k parser is (setupapi.dll i think). For example, it only substitutes variables in the keys and not in the values. and it is worse with quotes; the infs that came with directX would generate errors so they had be modified to get it to work. For directX, it was rather intractable so I made some batch files to automate it.
Here are some speculations of mine about the creation of the registry during setup:
When textmode first starts it loads the registry from SETUPREG.HIV which is in the bootsector, with all the other files listed in DOSNET.INF; when installing using the temporary drive option the bootsector is created in a folder name $WIN_NT$.~BT on the system partition. Setup then begins copying all the files specified in the [Files] section of DOSNET.INF to the temporary folder (something like $WIN_NT$.~LS). After copying the files it then adds the registry data specified in the [HiveInfs.Fresh] section of TXTSETUP.SIF. And then it saves the registry, as well as a backup, to the system32\config folder and there is your registry (So the hives with the .sav extension, which are the system backup, are just a copy of the registry at the end of textmode setup). Next time it starts it will boot from the temporary folder and load the registry from the config folder just like normal.
*** Actually, Im not sure what I was thinking in the last paragraph but I mixed something up and I want to correct it.
Textmode copies the files from the local distribution (or cd) as specified in TXTSETUP.SIF not DOSNET.INF. My bad. Among other things, DOSNET.INF describes whats in the distribution share or cd and is used by winnt32.exe /tempdrive to create the remote or local distribution (and bootsector image in the appropriate place).