RE: INT13/SCSI Boot Questions (Unsigned Mail)

Hi,

Phil said, that “Once NTLDR jumps into the kernel, INT 13h isn’t used
anymore, AFAIK.”
and Mark said that “… INT13 boot disk is used as the OS goes through its
initialization process”,
and I’d like to know how long the Int13 handler is exactly used
(initialization Phase 0,1) ?
Because the first physical disk reads (MBR and boot sectors of logical
volumes) still run thru the
Int13 handler.

Regards
Else

“Roddy, Mark”

m> cc:
Sent by: Subject: RE: [ntdev] INT13/SCSI Boot Questions (Unsigned Mail)
bounce-205046-16691@li
sts.osr.com

03/30/2005 12:35 AM
Please respond to
“Windows System
Software Devs Interest
List”

If you want to boot off of an iSCSI remote disk you have to have bios
support for something that looks like an INT13 disk device but is in fact
your remote iSCSI disk. This is possible if you have a hardware iSCSI
solution, but I think it is not possible if you have a software iSCSI
solution.

The INT13 interface is used to load the entire OS off of the BOOT DISK
whatever that happens to be, and that INT13 boot disk is used as the OS
goes through its initialization process. That very same BOOT DISK had
better be the same media used when the OS switches from using the INT13
interface to the internal HBA miniport drivers.

=====================
Mark Roddy

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Chris Harrer
Sent: Tuesday, March 29, 2005 5:06 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] INT13/SCSI Boot Questions

Phil,

Thanks for the information. I’m still working on getting my terminology
right.

The problem I’m investigating is iSCSI related and I’m trying to first
determine how SCSI works and extrapolate that to iSCSI. Would it be fair
to say (and I know this leaves out a lot of details) that at the point in
your description below where, after “NTLDR has all the necessary stuff in
memory, it jumps into the kernel, which starts the drivers…”, an iSCSI
driver (which is implemented as a SCSI miniport) could be one of the ones
started?

Like I said, I know this leaves out a lot of details (mainly because I
don’t have them yet).

Chris

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@seagate.com
Sent: Monday, March 28, 2005 6:42 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] INT13/SCSI Boot Questions

xxxxx@lists.osr.com wrote on 03/28/2005 03:27:45 PM:

> Hello,
>
> Please accept my apology in advance if this is not the appropriate place
to
> post this.
>
> I’m trying to understand how SCSI devices boot via the use of INT13 in a
> windows environment and am pretty much banging my head against the wall.
I
> looked at the aha154x driver in the DDK, but did not find anything that
> helped me in my search. As a background, my SCSI knowledge is very
limited
> as I’m a networking type. Can anyone point me to somewhere that describes
> (from a SCSI miniport point of view) what needs to be done, if anything
> specific, within my driver to support boot. I’ve read several MSDN
articles
> that describe boot.ini requirement to specify where the boot image
resides,
> but nothing about actually implementing INT13 processing in my ROM image.

SCSI devices don’t boot. They start and stop. (OK, they do boot, but you
don’t see that unless you are attached to a diagnostic port, and they sure
don’t use INT 13h to boot themselves.)

Software or firmware boots from a variety of media, including SCSI devices.
Perhaps you meant to ask something like “How does Windows boot from a SCSI
device using INT 13h?” Good question. But the answer requires a bit of
background. The following description is generally correct, though I know
of some exceptions, such as some alternative boot loaders that do things
differently.

The BIOS in any modern system already has an INT 13h handler for the
onboard HBA, whether it’s ATA or SCSI. When the POST is completed, the
BIOS loads the MBR (LBA zero) from the designated boot device, and then
jumps into the code in that sector. That sector needs to load any data it
requires to continue booting, but how? Normally it’s done through the INT
13h interface. The boot code reads the MBR to see which partition is
active, then loads the boot sector from that partition. That boot sector
then reads the FS enough to continue the process, loading the kernel,
registry hive, boot drivers, and some other gunk. Once NTLDR has all the
necessary stuff in memory, it jumps into the kernel, which then starts the
drivers, including the HBA driver. Once NTLDR jumps into the kernel, INT
13h isn’t used anymore, AFAIK. The most current edition of “Inside Windows
???” by Russinovich and Solomon has an excellent description of this
process.

I’ve never seen the code for an INT 13h handler, so I’m not exactly sure
what you need to know. Are you trying to write an INT 13h handler for a
SCSI HBA? Perhaps it would be more productive for you to give more detail
about the specific problem you are trying to solve?

Phil

Philip D. Barila
Seagate Technology LLC
(720) 684-1842 — Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 You are currently subscribed to
ntdev as: xxxxx@alacritech.com To unsubscribe send a blank email to
xxxxx@lists.osr.com
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@utimaco.de
To unsubscribe send a blank email to xxxxx@lists.osr.com