Scsi Miniport Context?

Hi all,
I have the task to write a busmaster atapi SCSI miniport driver for NT4 which will talk to hardware. How are
multiprocessor issues to be handled in a SCSI miniport drivers? In NDIS if a datastruct is shared between ISR and other
routines, Ndis provides NdisMSynchronizeWithInterrupt , but what about SCSI Miniport. Is the meaning of the term
“miniport context” different in NDIS and SCSI miniports. Thanks in advance.

Regards,
Sameer

SCSI miniport driver is already multiprocessor safe. SCSI port driver does
very nice job to keep everything synchronized nicely.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of
xxxxx@smsc.com
Sent: Thursday, November 30, 2000 3:56 PM
To: NT Developers Interest List
Subject: [ntdev] Scsi Miniport Context?

Hi all,
I have the task to write a busmaster atapi SCSI miniport driver for NT4
which will talk to hardware. How are
multiprocessor issues to be handled in a SCSI miniport drivers? In NDIS if
a datastruct is shared between ISR and other
routines, Ndis provides NdisMSynchronizeWithInterrupt , but what about SCSI
Miniport. Is the meaning of the term
“miniport context” different in NDIS and SCSI miniports. Thanks in advance.

Regards,
Sameer


You are currently subscribed to ntdev as: xxxxx@yahoo.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)

which will talk to hardware. How are

multiprocessor issues to be handled in a SCSI miniport drivers? In NDIS
if

Any routine in the SCSI miniport is called by the SCSIPORT with lots of
spinlocks held. So, you can forget about any concurrency issues there and
treat the code as single-tasked.

SCSI Miniport. Is the meaning of the term

“miniport context” different in NDIS and SCSI miniports. Thanks in

In SCSI miniports, the term means:

  • ScsiPortxxx can be called only from the miniport’s function called by the
    SCSIPORT
    . In another words - SCSIPORT must already be on the call stack to
    call ScsiPortxxx.
  • calling ScsiPortxxx from the other context (like the completion routine
    called by the lower driver) is prohibited because it violates the SCSIPORT’s
    locking hierarchy.

Max

Hi Max,

Thanks for the reply. Just one more thing to clear up. Is every routine in the SCSI Miniport driver executed at
DIRQL Level?
Thanks.

Regards,
Sameer.

> Thanks for the reply. Just one more thing to clear up. Is every
routine in the SCSI Miniport driver executed at

DIRQL Level?

IIRC they are usually executed on DIRQL from KeSynchronizeExecution with the
device’s ISR. So, > DISPATCH_LEVEL.
Don’t know on HwScsiFindDevice - it is possibly called from DISPATCH_LEVEL.

Max