*sigh*of*relief* At last, some
of the more mysterious details of the early NT boot sequence. These were come across while continuing to work with WinAoE towards a generic-virtual-bus-with-disk-devices driver.
Restrictions on Miniport Drivers that Manage the Boot Drive:http://msdn.microsof...y/aa508892.aspx
A relevant string in AIC78XX.SYS (and others which can be NTBOOTDD.SYS, including I2OMP.SYS):
A sample which checks for usage from OSLOADER/NTLDR/SETUPLDR:
Other strings in AIC78XX.SYS which appear
to have something to do with ScsiPortGetBusData(), and which look an awful lot like BOOT.INI/WINNT.SIF/TXTSETUP.SIF boot switches:
A look at OSLOADER.EXE reveals that it implements the same functions as SCSIPORT.SYS. Read that as: Provides some of the same facilities to NTBOOTDD.SYS, including debug printing (yay).
--- DAMN IT, JUST LOST MY POST WITH A MYSTERY "BACK" CLICK *ARGH* --- Let me try to remember... *very*serious*gah*
For a while, I was trying to wrap my head around how the same driver for a fully booted Windows could provide block device services for NTLDR. It makes much more sense now: It checks if it's being used as NTBOOTDD.SYS, and behaves minimally, if needed. The check is on data passed by the caller of the driver's implementation of HwScsiFindAdapter(). Whether NTBOOTDD.SYS is discarded later for another instance of the loaded driver cannot be told in this post for lack of code/experiment.
Just for fun today, I printed output to the /NOGUIBOOT or /SOS Windows boot screen, you know, the one with the Windows version and CPU count on it. Since this is before even the Session Manager starts, it got me thinking about Alex Ionescu's TinyKRNL OS' Native CLI, and if it could be ported to be integrated with a driver, instead. Doing crazy things that early in the boot process is even before you stand a chance of a STOP 0x7B error; before the boot volume is accessed beyond NTLDR's work. It'd be neat to get a CLI so
This is also something like the NT password hacking utility that used to float around as an NT setup F6 driver, and also something like offering the Recovery Console in that boot screen (somebody did that around here, didn't they?).
Speaking of early, it seems that there was once an anti-virus driver (or was it some other driver?) which you could see load during /SOS, and which would pause and prompt for a keystroke to do... Something... Has anyone seen a driver like this? I'm curious to see the means by which it accepts input. Trying to learn, here!
Development: Currently making a cleaner separation of the AoE parts from the bus and disk parts in WinAoE.