I agree.
SCSIPORT that ships with Windows is not documented and it is designed to
work with hardware, not pseudo devices.
We wrote our own SCSI port driver with its own miniport interface. We
maintained compatibility with the MS miniport interface.
What we did was to deserialize the SCSI port to miniport interface. This
allows us to post IRPS to threads, use worker items and complete SCSI
requests in any context; no just the SCSIPORT context. So, calling TDI is a
breeze!
Works great. Study the class2.sys sources in the DDK. It uncovers a few bugs
in the SCSIPORT that MS worked around; we had to implement the bug to
maintain compatibility ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=12)
Jamey
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Mark Cariddi
Sent: Saturday, March 17, 2001 12:31 PM
To: NT Developers Interest List
Cc: xxxxx@avilla.com
Subject: [ntdev] RE: pseudoSCSI miniport driver for iSCSI
The best way IMHO is to write a SCSI PORT driver and forget about a
miniport. However writing a SCSI Port driver for NT is not documented and
not too easy (it is not documented). The advantage of doing your own port
driver is that you get out from all the interface restrictions imposed by
the miniport. To compound your problems, your going to have to figure
out how to talk to TCP via the TDI interface (not the easiest interface to
you.) Anyway, to continue. I say write a full scsi port driver. If
you do this, your second question is moot, Your going to be writing a
software only PNP driver NT. If you do your driver this way. You will
only make your devices visible to NT when you have a connection to them so
only then will NT start sending device ready requests. BTW, Microsoft
doesn’t currently WHQL scsi port drivers (at least I don’t think so).
Look at the toaster bus example in the DDK for a BUS driver, because that
is what your driver will be a SCSI BUS driver, you can look at a TDI example
on www.pcausa.com.
–Mark
Mark J. Cariddi
Consulting Associate
Open Systems Resources, Inc.
http://www.osr.com/
-----Original Message-----
From: avilla [mailto:xxxxx@avilla.com]
Sent: Saturday, March 17, 2001 3:21 PM
To: NT Developers Interest List
Subject: [ntdev] pseudoSCSI miniport driver for iSCSI
greetings,
if there is someone out there who is familiar with SCSI miniports I
have a few questions.
I need to extend the pseudoSCSI miniport a bit beyond the DDK’s
definition of “interfacing a storage class driver and a SCSI miniport
that controls a nonSCSI storage device”.
I’m taking an iSCSI driver I wrote for Linux and I need to create a
similar driver for NT. This driver “fakes” an HBA, and re-routes all
the
SCSI commands to a TCP interface. The system thinks there’s
a SCSI disk and treats it accordingly even though the hardware (an
NCR HBA) is not physically installed.
My questions are:
can a SCSi miniport driver successfully present a “dummy” HBA to
Windows? will the storage-port driver somehow foul this appraoch?
since I don’t have any interrupts to enable on an HBA inside of
HwScsiInitialize() will the port driver unload the miniport?
does NT send device ready requests to each LUN ID on the HBA
after DriverEntry()?
thanks,
Andy Villa
xxxxx@avilla.com
You are currently subscribed to ntdev as: xxxxx@osr.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com