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