How can I make device tree as I want to ?

Hi all,

I would like to develop ‘Clustered iSCSI Initiator’ based on iSCSI
Initiator.

I have plan for develop my own FSD and Disk Drive driver for it.

What I’ve known for it, concern with the storage device hierarchy, is

MyFSD - MyDiskDrive (DiskDrive Class) - SCSI miniport Drive (SCSIAdapter
Class).

MyFSD will be a basic fsd and communicate with control server for getting
cluster information.
I would like send some my own data(cluster information) from FSD to
DiskDrive directly by IrpSp->FileObject (Cluster information)
MyDiskDrive will be a basic diskdrive and create cluster information
according to the information from fsd.
iSCSI Initiator will send iSCSI + Cluster information(as AHS).

I found that the hierarchy is

FSD - VolSnap (Volume Class) - PartMgr - DiskDrive - SCSI miniport Drive.

Unfortunately, Diskdrive couldn’t get the cluster information from partmgr.
I guess the VolSnap or PartMgr must swallow it.

My DiskDrive was from ddk sample and MyFSD also.

What’re the functionalities of VolSnap and PartMgr ?

How can I make the device tree MyFsd - MyDiskDrive - MySCSI miniPort ?

I registered Diskdrive as a Diskdrive Class, SCSI miniport Drive as a SCSI
storage Class.

Any help will be appreciated

Regards,
Eddie

Hi,
Actually the Volume Class driver has the name Ftdisk( not VolSnap which is a
snapshot driver ).
Pay attention on the removable storage’s stack, it is exactly what you want,
e.g. USB pen drive stack is Fsd( fastfat )-DiskClassDriver(
disk )-USBSTOR( usbstor )

“EddieShim” wrote in message news:xxxxx@ntdev…
> Hi all,
>
> I would like to develop ‘Clustered iSCSI Initiator’ based on iSCSI
> Initiator.
>
> I have plan for develop my own FSD and Disk Drive driver for it.
>
> What I’ve known for it, concern with the storage device hierarchy, is
>
> MyFSD - MyDiskDrive (DiskDrive Class) - SCSI miniport Drive (SCSIAdapter
> Class).
>
> MyFSD will be a basic fsd and communicate with control server for getting
> cluster information.
> I would like send some my own data(cluster information) from FSD to
> DiskDrive directly by IrpSp->FileObject (Cluster information)
> MyDiskDrive will be a basic diskdrive and create cluster information
> according to the information from fsd.
> iSCSI Initiator will send iSCSI + Cluster information(as AHS).
>
> I found that the hierarchy is
>
> FSD - VolSnap (Volume Class) - PartMgr - DiskDrive - SCSI miniport Drive.
>
> Unfortunately, Diskdrive couldn’t get the cluster information from
> partmgr. I guess the VolSnap or PartMgr must swallow it.
>
> My DiskDrive was from ddk sample and MyFSD also.
>
> What’re the functionalities of VolSnap and PartMgr ?
>
> How can I make the device tree MyFsd - MyDiskDrive - MySCSI miniPort ?
>
> I registered Diskdrive as a Diskdrive Class, SCSI miniport Drive as a SCSI
> storage Class.
>
> Any help will be appreciated
>
> Regards,
> Eddie
>
>

Are you trying to share data between your FSD and your disk driver by
sticking it into the FileObject?

This sort of coupling between drivers is a terrible idea and is almost
certain to fail. If you want your FSD to send custom data to the disk
driver it should just send an I/O control down the device stack.

-p

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of EddieShim
Sent: Wednesday, June 07, 2006 3:57 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] How can I make device tree as I want to ?

Hi all,

I would like to develop ‘Clustered iSCSI Initiator’ based on iSCSI
Initiator.

I have plan for develop my own FSD and Disk Drive driver for it.

What I’ve known for it, concern with the storage device hierarchy, is

MyFSD - MyDiskDrive (DiskDrive Class) - SCSI miniport Drive (SCSIAdapter
Class).

MyFSD will be a basic fsd and communicate with control server for
getting cluster information.
I would like send some my own data(cluster information) from FSD to
DiskDrive directly by IrpSp->FileObject (Cluster information)
MyDiskDrive will be a basic diskdrive and create cluster information
according to the information from fsd.
iSCSI Initiator will send iSCSI + Cluster information(as AHS).

I found that the hierarchy is

FSD - VolSnap (Volume Class) - PartMgr - DiskDrive - SCSI miniport
Drive.

Unfortunately, Diskdrive couldn’t get the cluster information from
partmgr.
I guess the VolSnap or PartMgr must swallow it.

My DiskDrive was from ddk sample and MyFSD also.

What’re the functionalities of VolSnap and PartMgr ?

How can I make the device tree MyFsd - MyDiskDrive - MySCSI miniPort ?

I registered Diskdrive as a Diskdrive Class, SCSI miniport Drive as a
SCSI storage Class.

Any help will be appreciated

Regards,
Eddie


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Hi,

Thanks for your reply.

I have to consider the data consistency. The custom data must match with the
exact Irp.
How can I solve this kind of restriction ? Let me know if you have had this
kind of experiences.

Regards,
Eddie

“Peter Wieland” wrote in message
news:xxxxx@ntdev…
Are you trying to share data between your FSD and your disk driver by
sticking it into the FileObject?

This sort of coupling between drivers is a terrible idea and is almost
certain to fail. If you want your FSD to send custom data to the disk
driver it should just send an I/O control down the device stack.

-p

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of EddieShim
Sent: Wednesday, June 07, 2006 3:57 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] How can I make device tree as I want to ?

Hi all,

I would like to develop ‘Clustered iSCSI Initiator’ based on iSCSI
Initiator.

I have plan for develop my own FSD and Disk Drive driver for it.

What I’ve known for it, concern with the storage device hierarchy, is

MyFSD - MyDiskDrive (DiskDrive Class) - SCSI miniport Drive (SCSIAdapter
Class).

MyFSD will be a basic fsd and communicate with control server for
getting cluster information.
I would like send some my own data(cluster information) from FSD to
DiskDrive directly by IrpSp->FileObject (Cluster information)
MyDiskDrive will be a basic diskdrive and create cluster information
according to the information from fsd.
iSCSI Initiator will send iSCSI + Cluster information(as AHS).

I found that the hierarchy is

FSD - VolSnap (Volume Class) - PartMgr - DiskDrive - SCSI miniport
Drive.

Unfortunately, Diskdrive couldn’t get the cluster information from
partmgr.
I guess the VolSnap or PartMgr must swallow it.

My DiskDrive was from ddk sample and MyFSD also.

What’re the functionalities of VolSnap and PartMgr ?

How can I make the device tree MyFsd - MyDiskDrive - MySCSI miniPort ?

I registered Diskdrive as a Diskdrive Class, SCSI miniport Drive as a
SCSI storage Class.

Any help will be appreciated

Regards,
Eddie


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Hi,

Thanks for your reply.

I tried to check the device stack with USB storage, but it was same with my
hdd’s.

Fsd - Ftdisk - Disk - USBStor : (

I found that the Filedisk make the device stack as what I want to.

Of course, it’s different like other class driver, but I’m trying to find
any clue from it, even I can’t have any convince from it.:frowning:

Regards,
Eddie

“Slava Imameyev” wrote in message news:xxxxx@ntdev…
> Hi,
> Actually the Volume Class driver has the name Ftdisk( not VolSnap which is
> a snapshot driver ).
> Pay attention on the removable storage’s stack, it is exactly what you
> want,
> e.g. USB pen drive stack is Fsd( fastfat )-DiskClassDriver(
> disk )-USBSTOR( usbstor )
>
> “EddieShim” wrote in message news:xxxxx@ntdev…
>> Hi all,
>>
>> I would like to develop ‘Clustered iSCSI Initiator’ based on iSCSI
>> Initiator.
>>
>> I have plan for develop my own FSD and Disk Drive driver for it.
>>
>> What I’ve known for it, concern with the storage device hierarchy, is
>>
>> MyFSD - MyDiskDrive (DiskDrive Class) - SCSI miniport Drive (SCSIAdapter
>> Class).
>>
>> MyFSD will be a basic fsd and communicate with control server for getting
>> cluster information.
>> I would like send some my own data(cluster information) from FSD to
>> DiskDrive directly by IrpSp->FileObject (Cluster information)
>> MyDiskDrive will be a basic diskdrive and create cluster information
>> according to the information from fsd.
>> iSCSI Initiator will send iSCSI + Cluster information(as AHS).
>>
>> I found that the hierarchy is
>>
>> FSD - VolSnap (Volume Class) - PartMgr - DiskDrive - SCSI miniport Drive.
>>
>> Unfortunately, Diskdrive couldn’t get the cluster information from
>> partmgr. I guess the VolSnap or PartMgr must swallow it.
>>
>> My DiskDrive was from ddk sample and MyFSD also.
>>
>> What’re the functionalities of VolSnap and PartMgr ?
>>
>> How can I make the device tree MyFsd - MyDiskDrive - MySCSI miniPort ?
>>
>> I registered Diskdrive as a Diskdrive Class, SCSI miniport Drive as a
>> SCSI storage Class.
>>
>> Any help will be appreciated
>>
>> Regards,
>> Eddie
>>
>>
>
>
>

USB hard disks don’t have the RemovableMedia set to 0x1 in
STORAGE_DEVICE_DESCRIPTOR therefore they are not recognized as removable
storages.

“EddieShim” wrote in message news:xxxxx@ntdev…
> Hi,
>
> Thanks for your reply.
>
> I tried to check the device stack with USB storage, but it was same with
> my hdd’s.
>
> Fsd - Ftdisk - Disk - USBStor : (
>
> I found that the Filedisk make the device stack as what I want to.
>
> Of course, it’s different like other class driver, but I’m trying to find
> any clue from it, even I can’t have any convince from it.:frowning:
>
> Regards,
> Eddie
>
> “Slava Imameyev” wrote in message
> news:xxxxx@ntdev…
>> Hi,
>> Actually the Volume Class driver has the name Ftdisk( not VolSnap which
>> is a snapshot driver ).
>> Pay attention on the removable storage’s stack, it is exactly what you
>> want,
>> e.g. USB pen drive stack is Fsd( fastfat )-DiskClassDriver(
>> disk )-USBSTOR( usbstor )
>>
>> “EddieShim” wrote in message news:xxxxx@ntdev…
>>> Hi all,
>>>
>>> I would like to develop ‘Clustered iSCSI Initiator’ based on iSCSI
>>> Initiator.
>>>
>>> I have plan for develop my own FSD and Disk Drive driver for it.
>>>
>>> What I’ve known for it, concern with the storage device hierarchy, is
>>>
>>> MyFSD - MyDiskDrive (DiskDrive Class) - SCSI miniport Drive (SCSIAdapter
>>> Class).
>>>
>>> MyFSD will be a basic fsd and communicate with control server for
>>> getting cluster information.
>>> I would like send some my own data(cluster information) from FSD to
>>> DiskDrive directly by IrpSp->FileObject (Cluster information)
>>> MyDiskDrive will be a basic diskdrive and create cluster information
>>> according to the information from fsd.
>>> iSCSI Initiator will send iSCSI + Cluster information(as AHS).
>>>
>>> I found that the hierarchy is
>>>
>>> FSD - VolSnap (Volume Class) - PartMgr - DiskDrive - SCSI miniport
>>> Drive.
>>>
>>> Unfortunately, Diskdrive couldn’t get the cluster information from
>>> partmgr. I guess the VolSnap or PartMgr must swallow it.
>>>
>>> My DiskDrive was from ddk sample and MyFSD also.
>>>
>>> What’re the functionalities of VolSnap and PartMgr ?
>>>
>>> How can I make the device tree MyFsd - MyDiskDrive - MySCSI miniPort ?
>>>
>>> I registered Diskdrive as a Diskdrive Class, SCSI miniport Drive as a
>>> SCSI storage Class.
>>>
>>> Any help will be appreciated
>>>
>>> Regards,
>>> Eddie
>>>
>>>
>>
>>
>>
>
>
>

> Actually the Volume Class driver has the name Ftdisk( not VolSnap which is a

snapshot driver ).

VolSnap is an upper filter for the Volume class on XP, and yes, the functional
driver on 2003. FtDisk is the bus driver for volumes, it creates PDOs for
volume devnodes.

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