Maxim
Wed May 25 09:32:23 CDT 2005
> in one driver. In DriverEntry of SCSI miniport driver, I call
> ScsiPortInitialize for each chip
No, you call ScsiPortInitialize for each bus type.
For PnP busses like PCI, this call creates some internal structures in
SCSIPORT. The HwFindAdapter will be called much later from SCSIPORT
MN_START_DEVICE path. The hardware addresses are provided to HwFindAdapter
(from the START IRP).
For non-PnP buses, HwFindAdapter is called in a loop within ScsiPortInitialize
and must do the hardware probing itself - SCSIPORT provides the way to do this.
The addresses are not provided, and HwFindAdapter must probe the next possible
location of the hardware (via the hard-coded table usually). This is how
SCSIPORT worked in NT4.
I would un-recommend controlling 2 pieces of the hardware from the single
hardware-level driver, unless they are on the same PCI card. If it is not so -
then write the software-only RAID (BTW - any need in it? Why Dynamic Disk is
bad?)
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com