question on scsiminiport driver

Hi All,

I am working on scsiminiport driver for the RAID controller. If I delete an
existing array and recreate new array at the same location and then goto
device manager and click on “ScanforHardwareChanges”. The device manager
does not recognize the new array. It requires another
“ScanforHardwareChanges” to recongnize new array. More importantly this
happens only when I recreate the same Target after deleting it.

Is anyone come accross this situation?

Thanks for your help,
Shakeel

This is because SCSIPORT caches INQUIRY data for some time inside itself,
and responds to PnP uses this cached data.
I remember there was a ScsiPortNotification which forced SCSIPORT to junk
this cache.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: “shakeel”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Friday, January 28, 2005 11:28 PM
Subject: [ntdev] question on scsiminiport driver

> Hi All,
>
> I am working on scsiminiport driver for the RAID controller. If I delete an
> existing array and recreate new array at the same location and then goto
> device manager and click on “ScanforHardwareChanges”. The device manager
> does not recognize the new array. It requires another
> “ScanforHardwareChanges” to recongnize new array. More importantly this
> happens only when I recreate the same Target after deleting it.
>
> Is anyone come accross this situation?
>
> Thanks for your help,
> Shakeel
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com

Since the miniport is yours, you should signal BusChangeDetected any
time you add or remove a device (array LUN).

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Friday, January 28, 2005 8:01 PM
Subject: Re: question on scsiminiport driver

This is because SCSIPORT caches INQUIRY data for some time inside
itself,
and responds to PnP uses this cached data.
I remember there was a ScsiPortNotification which forced SCSIPORT to
junk
this cache.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: “shakeel”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Friday, January 28, 2005 11:28 PM
Subject: [ntdev] question on scsiminiport driver

> Hi All,
>
> I am working on scsiminiport driver for the RAID controller. If I
delete an
> existing array and recreate new array at the same location and then
goto
> device manager and click on “ScanforHardwareChanges”. The device
manager
> does not recognize the new array. It requires another
> “ScanforHardwareChanges” to recongnize new array. More importantly
this
> happens only when I recreate the same Target after deleting it.
>
> Is anyone come accross this situation?
>
> Thanks for your help,
> Shakeel
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com

Jeffery and Max,

This is scsiminiport is for ATA(IDE) RAID controller. IDE does not have
hotplug/removal detection like SCSI.
So, the array is deleted/recreatead by the RAID management utility by
sending venderspecific commands to the controller.

The debugger output shows tha the scsiport driver detects that the device is
changed but does not report to device manager about the newly created array.
for example: Let us say there was 2 drive RAID 0 array exists at
path=0,Target=1,lun=0 (0,1,0)
Delete existing array (0,1,0) and creates new array 4
drive RAID 1 at same location (0,1,0)
Call windows API to “ScanforHardwareChanges”

Debugger output =====>
The scsiport driver sends inquiry commad for the
existing target at location (0,1,0)
SpInquireTarget: Try existing device @ Bus 0, Target 1,
Lun 0
SpInquireDevice: Device @ (0,1,0) has changed
SpExtractDeviceRelations: logical unit (0,1,0) is
missing and will not be returned.
========>

The scsiport driver is detecting the change, but drops it from the found
devices list even though it is new array. I will have to
“ScanforHardwareChanges” again to make this new array appear.

What to do I do? any idea?

Thanks for help,
Shakeel.

“Jeffrey Goldner” wrote in message
news:xxxxx@ntdev…
Since the miniport is yours, you should signal BusChangeDetected any
time you add or remove a device (array LUN).

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Friday, January 28, 2005 8:01 PM
Subject: Re: question on scsiminiport driver

This is because SCSIPORT caches INQUIRY data for some time inside
itself,
and responds to PnP uses this cached data.
I remember there was a ScsiPortNotification which forced SCSIPORT to
junk
this cache.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: “shakeel”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Friday, January 28, 2005 11:28 PM
Subject: [ntdev] question on scsiminiport driver

> Hi All,
>
> I am working on scsiminiport driver for the RAID controller. If I
delete an
> existing array and recreate new array at the same location and then
goto
> device manager and click on “ScanforHardwareChanges”. The device
manager
> does not recognize the new array. It requires another
> “ScanforHardwareChanges” to recongnize new array. More importantly
this
> happens only when I recreate the same Target after deleting it.
>
> Is anyone come accross this situation?
>
> Thanks for your help,
> Shakeel
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com