While reading about StorPort, I found this:

In the SCSI Port-miniport driver I/O model, the miniport driver's
StartIo routine, HwScsiStartIo, should transmit SCSI request blocks
(SRBs) to the hardware as quickly as possible. This is essential,
because work done in the miniport driver's StartIo routine is
accomplished while interrupts are disabled and at IRQL =
DISPATCH_LEVEL.

I was not aware that interrupts are disabled in HwScsiStartIo. Is
this true? If so, is it documented anywhere?

Re: SCSI Miniport HwScsiStartIo by Mark

Mark
Sat Nov 18 09:58:14 CST 2006

On Wed, 15 Nov 2006 10:33:28 -0800, Jack Jackson
<jacknospam@pebbleridge.com> wrote:

>While reading about StorPort, I found this:
>
>In the SCSI Port-miniport driver I/O model, the miniport driver's
>StartIo routine, HwScsiStartIo, should transmit SCSI request blocks
>(SRBs) to the hardware as quickly as possible. This is essential,
>because work done in the miniport driver's StartIo routine is
>accomplished while interrupts are disabled and at IRQL =
>DISPATCH_LEVEL.
>
>I was not aware that interrupts are disabled in HwScsiStartIo. Is
>this true? If so, is it documented anywhere?


It is sort of true. Your HwStartIo routine will be called at DIRQL -
your hardware's IRQL. This will defer all interrupts <= DIRQL. If you
are a timer based miniport DIRQL will be DISPATCH_LEVEL.

Your docs are old by the way. Upgrade to the Vista WDK.



=====================
Mark Roddy DDK MVP
Windows Vista/2003/XP Consulting
Device and Filesystem Drivers
Broken Driver Code? Call us.
Hollis Technology Solutions 603-321-1032
www.hollistech.com

Re: SCSI Miniport HwScsiStartIo by Jack

Jack
Sat Nov 18 12:08:22 CST 2006

On Sat, 18 Nov 2006 10:58:14 -0500, Mark Roddy <markr@hollistech.com>
wrote:

>On Wed, 15 Nov 2006 10:33:28 -0800, Jack Jackson
><jacknospam@pebbleridge.com> wrote:
>
>>While reading about StorPort, I found this:
>>
>>In the SCSI Port-miniport driver I/O model, the miniport driver's
>>StartIo routine, HwScsiStartIo, should transmit SCSI request blocks
>>(SRBs) to the hardware as quickly as possible. This is essential,
>>because work done in the miniport driver's StartIo routine is
>>accomplished while interrupts are disabled and at IRQL =
>>DISPATCH_LEVEL.
>>
>>I was not aware that interrupts are disabled in HwScsiStartIo. Is
>>this true? If so, is it documented anywhere?
>
>
>It is sort of true. Your HwStartIo routine will be called at DIRQL -
>your hardware's IRQL. This will defer all interrupts <= DIRQL. If you
>are a timer based miniport DIRQL will be DISPATCH_LEVEL.
>
>Your docs are old by the way. Upgrade to the Vista WDK.

Thanks. The above came from msdn.microsoft.com which I sometimes use
when I am away from my computer that has the DDK installed.