Defrag virtual disk on W2K

Hi All,

I have a virtual disk driver on NT/W2k based on Ramdisk. The driver works fine
with Diskeeper on NT4 (NT4 does not have a built-in defrag utility), but it just
does not show up in W2K built-in defrag utility. Would you please help me to get
it work with W2K defrag?

Appreciate in advance.


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

Search the archive of this mail list. Michael Vodichka posted list of
IOCTLs you need to implement to make your (???) driver work on Win2K. And
prepare for even more fun on Win XP. The way was choosen by you to
implement virtual storage devices is not correct.

On 07/04/01, “xxxxx@3com.com” wrote:

Hi All,

I have a virtual disk driver on NT/W2k based on Ramdisk. The driver works fine
with Diskeeper on NT4 (NT4 does not have a built-in defrag utility), but it just
does not show up in W2K built-in defrag utility. Would you please help me to get
it work with W2K defrag?

Appreciate in advance.


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


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

Thanks., Anton. Actually my driver supports the IOCTLs posted by Michael
Vodichka and it works fine with format/chkdsk, but not defrag. -:frowning: And I also
read the article at systeminternal.com about defrag. Here is the URL just
someone else also intereted:

http://www.sysinternals.com/ntw2k/info/defrag.shtml

It seems to me that the defrag IOCTLs is implemented by FS driver, and the only
IOCTL new sent to my driver on W2k is 0x4d0008 and 0x66001B which I just return
not supported. Could that be the reason?

Anyway, what should be the correct way to implement virtual storage? I also
followed the other discusses about SCSI port/miniport. And it seems that SCSI
port driver is the best way to do it? If so how could I start it (There is
nothing in DDK talking about how to develop a SCSI port driver)? Any
book/information availble? Thanks again.

Michael

Search the archive of this mail list. Michael Vodichka posted list of
IOCTLs you need to implement to make your (???) driver work on Win2K. And
prepare for even more fun on Win XP. The way was choosen by you to
implement virtual storage devices is not correct.

On 07/04/01, “xxxxx@3com.com” wrote:

Hi All,

I have a virtual disk driver on NT/W2k based on Ramdisk. The driver works fine
with Diskeeper on NT4 (NT4 does not have a built-in defrag utility), but it
just
does not show up in W2K built-in defrag utility. Would you please help me to
get
it work with W2K defrag?

Appreciate in advance.


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

Hi,

Try to implement all IOCTLs you fail as unsupported. Maybe you’ll be lucky
and your code will work with defrag. But I personally do not belive in
this.

About “correct” way of implementing of the virtual storage. That theme is
pretty popular here. Try to search the archive. In a dew words… If you do
not care much about performance write SCSI miniport driver. If you do write
full SCSI port driver. I’ve wrote them both (SCSI port is nearly complete
doing testing right now). You can download my company complete “Storage
over IP solution” from www.cooldev.com. It’s free for non-commercial use.

Regards,
Anton

On 07/05/01, “xxxxx@3com.com” wrote:

Thanks., Anton. Actually my driver supports the IOCTLs posted by Michael
Vodichka and it works fine with format/chkdsk, but not defrag. -:frowning: And I also
read the article at systeminternal.com about defrag. Here is the URL just
someone else also intereted:

http://www.sysinternals.com/ntw2k/info/defrag.shtml

It seems to me that the defrag IOCTLs is implemented by FS driver, and the only
IOCTL new sent to my driver on W2k is 0x4d0008 and 0x66001B which I just return
not supported. Could that be the reason?

Anyway, what should be the correct way to implement virtual storage? I also
followed the other discusses about SCSI port/miniport. And it seems that SCSI
port driver is the best way to do it? If so how could I start it (There is
nothing in DDK talking about how to develop a SCSI port driver)? Any
book/information availble? Thanks again.

Michael

Search the archive of this mail list. Michael Vodichka posted list of
IOCTLs you need to implement to make your (???) driver work on Win2K. And
prepare for even more fun on Win XP. The way was choosen by you to
implement virtual storage devices is not correct.

On 07/04/01, “xxxxx@3com.com” wrote:
> Hi All,
>
> I have a virtual disk driver on NT/W2k based on Ramdisk. The driver works fine
> with Diskeeper on NT4 (NT4 does not have a built-in defrag utility), but it
just
> does not show up in W2K built-in defrag utility. Would you please help me to
get
> it work with W2K defrag?
>
> Appreciate in advance.
>
>
>


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


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

IMHO implementing these IOCTLs won’t help. We have also problem with defrag
which I found two weeks before because nobody complained about it yet :slight_smile: It
simply refuses our virtual drives because of “unsupported media type” or so.
If I ever have time to solve this problem, I would check the way how it
makes this decision but at first I would check if defrag API alone does work
at all. There is some utility on System Internals website which allows it.

As for the “correct” way… We developed our driver starting with RamDisk
sample when NT4 were young. We chosen this way because it was the most
straightforward one and also efficient one. For w2k only few changes were
necessary. The real fun started with XP but currently it seems to work well
and the driver is binary complatible for NT4/w2k/XP. Maybe I’m wrong but
still see some advantages of this driver concept – we
create/mount/dismount/delete virtual drives on demand and can assign any
free drive letter as for network drive mapping. This way we can support
terminal services (and XP fast user switching) i.e. drive letters are local
to sessions. Is it possible with SCSI port/miniport virtual drives?

Best regards,

Michal Vodicka
Veridicom
(RKK - Skytale)
[WWW: http://www.veridicom.com , http://www.skytale.com]


From:
xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
Reply To: NT Developers Interest List
Sent: Thursday, July 05, 2001 3:00 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Defrag virtual disk on W2K

Hi,

Try to implement all IOCTLs you fail as unsupported. Maybe you’ll be lucky

and your code will work with defrag. But I personally do not belive in
this.

About “correct” way of implementing of the virtual storage. That theme is
pretty popular here. Try to search the archive. In a dew words… If you
do
not care much about performance write SCSI miniport driver. If you do
write
full SCSI port driver. I’ve wrote them both (SCSI port is nearly complete
doing testing right now). You can download my company complete “Storage
over IP solution” from www.cooldev.com. It’s free for non-commercial use.

Regards,
Anton

On 07/05/01, “xxxxx@3com.com” wrote:
> Thanks., Anton. Actually my driver supports the IOCTLs posted by Michael
> Vodichka and it works fine with format/chkdsk, but not defrag. -:frowning: And I
also
> read the article at systeminternal.com about defrag. Here is the URL
just
> someone else also intereted:
>
> http://www.sysinternals.com/ntw2k/info/defrag.shtml
>
> It seems to me that the defrag IOCTLs is implemented by FS driver, and
the only
> IOCTL new sent to my driver on W2k is 0x4d0008 and 0x66001B which I just
return
> not supported. Could that be the reason?
>
> Anyway, what should be the correct way to implement virtual storage? I
also
> followed the other discusses about SCSI port/miniport. And it seems that
SCSI
> port driver is the best way to do it? If so how could I start it (There
is
> nothing in DDK talking about how to develop a SCSI port driver)? Any
> book/information availble? Thanks again.
>
> Michael
>
>
> Search the archive of this mail list. Michael Vodichka posted list of
> IOCTLs you need to implement to make your (???) driver work on Win2K.
And
> prepare for even more fun on Win XP. The way was choosen by you to
> implement virtual storage devices is not correct.
>
>
> On 07/04/01, “xxxxx@3com.com” wrote:
> > Hi All,
> >
> > I have a virtual disk driver on NT/W2k based on Ramdisk. The driver
works fine
> > with Diskeeper on NT4 (NT4 does not have a built-in defrag utility),
but it
> just
> > does not show up in W2K built-in defrag utility. Would you please help
me to
> get
> > it work with W2K defrag?
> >
> > Appreciate in advance.
> >
> >
> >
>
>
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@rkk.cz
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@rkk.cz
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

Hi Mike,

I think you spent more time writing messages about problems in your
software then it could actually take you to write it in the correct way and
just forget about troubles for a pretty long time… Maybe even forever -)

I can understand you definitely. A lot of people started their NT kernel
development making sample RAM disk driver work with files instead of
memory. So you are one of them. Just like me -) The only problem you can
hardly call yourself a programmer if you only modify the existing DDK
source code to fit your needs. One day this will simply stop working for
you. Trust me -)

About what is possible for SCSI port/miniport drivers… Dowlnoad the
source code and prebuilt binaries from the link below ( To Peter Viscarola:
I hope you’ll not treat this as commerical? I’m just trying to save a
couple of development days for this guy and maybe some others…) and make
some experiments with the code. For free. Than you can make a choice for
yourself: continiue support ugly class-level virtual disks or go further
with cool low-level disks (200% IMHO!!!)

My personal advice to you… Write SCSI miniport driver. Do not listen
to the guys who cannot stop telling there are no other ways of completing
requests from SCSIPORT context except initalizing timer callback either
directly by HwScsiTimer() or indireclty via ScsiPortNotification(
RequestTimerCall…) THIS IS NOT TRUE (I do not want to discuss the reasons
making them do this. This is out of my bussiness) So just keep ptr to your
DEVICE_OBJECT and call yourself recursively with SRB_IO_CONTROL to complete
SRB and the stuff will work just fine (This is not the only solution! You
can invent your own one). Total overhead will be so small you can just
neglect it… And all prizes and advantages (like Windows 9x/Me/NT/2K/XP
guaranteed work) will be yours -)

Regards,
Anton Kolomyeytsev

CoolDev.Com - Toolkits for Network & Storage Kernel Software Developers
“KoolSockets” & “KoolStorage” - TDI Client, Kernel Sockets, SCSI
port/miniport
http://www.CoolDev.Com xxxxx@CoolDev.Com
xxxxx@CoolDev.Com

On 07/13/01, “Michal Vodicka ” wrote:
> IMHO implementing these IOCTLs won’t help. We have also problem with defrag
> which I found two weeks before because nobody complained about it yet :slight_smile: It
> simply refuses our virtual drives because of “unsupported media type” or so.
> If I ever have time to solve this problem, I would check the way how it
> makes this decision but at first I would check if defrag API alone does work
> at all. There is some utility on System Internals website which allows it.
>
> As for the “correct” way… We developed our driver starting with RamDisk
> sample when NT4 were young. We chosen this way because it was the most
> straightforward one and also efficient one. For w2k only few changes were
> necessary. The real fun started with XP but currently it seems to work well
> and the driver is binary complatible for NT4/w2k/XP. Maybe I’m wrong but
> still see some advantages of this driver concept – we
> create/mount/dismount/delete virtual drives on demand and can assign any
> free drive letter as for network drive mapping. This way we can support
> terminal services (and XP fast user switching) i.e. drive letters are local
> to sessions. Is it possible with SCSI port/miniport virtual drives?
>
> Best regards,
>
> Michal Vodicka
> Veridicom
> (RKK - Skytale)
> [WWW: http://www.veridicom.com , http://www.skytale.com]
>
>
>
> > ----------
> > From:
> > xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
> > Reply To: NT Developers Interest List
> > Sent: Thursday, July 05, 2001 3:00 AM
> > To: NT Developers Interest List
> > Subject: [ntdev] Re: Defrag virtual disk on W2K
> >
> > Hi,
> >
> > Try to implement all IOCTLs you fail as unsupported. Maybe you’ll be lucky
> >
> > and your code will work with defrag. But I personally do not belive in
> > this.
> >
> > About “correct” way of implementing of the virtual storage. That theme is
> > pretty popular here. Try to search the archive. In a dew words… If you
> > do
> > not care much about performance write SCSI miniport driver. If you do
> > write
> > full SCSI port driver. I’ve wrote them both (SCSI port is nearly complete
> > doing testing right now). You can download my company complete “Storage
> > over IP solution” from www.cooldev.com. It’s free for non-commercial use.
> >
> > Regards,
> > Anton
> >
> > On 07/05/01, “xxxxx@3com.com” wrote:
> > > Thanks., Anton. Actually my driver supports the IOCTLs posted by Michael
> > > Vodichka and it works fine with format/chkdsk, but not defrag. -:frowning: And I
> > also
> > > read the article at systeminternal.com about defrag. Here is the URL
> > just
> > > someone else also intereted:
> > >
> > > http://www.sysinternals.com/ntw2k/info/defrag.shtml
> > >
> > > It seems to me that the defrag IOCTLs is implemented by FS driver, and
> > the only
> > > IOCTL new sent to my driver on W2k is 0x4d0008 and 0x66001B which I just
> > return
> > > not supported. Could that be the reason?
> > >
> > > Anyway, what should be the correct way to implement virtual storage? I
> > also
> > > followed the other discusses about SCSI port/miniport. And it seems that
> > SCSI
> > > port driver is the best way to do it? If so how could I start it (There
> > is
> > > nothing in DDK talking about how to develop a SCSI port driver)? Any
> > > book/information availble? Thanks again.
> > >
> > > Michael
> > >
> > >
> > > Search the archive of this mail list. Michael Vodichka posted list of
> > > IOCTLs you need to implement to make your (???) driver work on Win2K.
> > And
> > > prepare for even more fun on Win XP. The way was choosen by you to
> > > implement virtual storage devices is not correct.
> > >
> > >
> > > On 07/04/01, “xxxxx@3com.com” wrote:
> > > > Hi All,
> > > >
> > > > I have a virtual disk driver on NT/W2k based on Ramdisk. The driver
> > works fine
> > > > with Diskeeper on NT4 (NT4 does not have a built-in defrag utility),
> > but it
> > > just
> > > > does not show up in W2K built-in defrag utility. Would you please help
> > me to
> > > get
> > > > it work with W2K defrag?
> > > >
> > > > Appreciate in advance.
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> > >
> > > —
> > > You are currently subscribed to ntdev as: xxxxx@rkk.cz
> > > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@rkk.cz
> > 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


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

Anton,

the situation is a bit different. The original driver wrote my collegaue and
I got this project later to improve it and support new NT versions. It isn’t
modified RamDisk sample (well, maybe 10% of code is similar), it only works
similar way because it is the driver of the same class. In fact, solving
problems with w2k and XP now took me several days which is much lesser than
writting a new driver of different type. Maybe it would be more “correct”
but I haven’t time and approval for it. I would get approval only if I
convince my chief it is absolutelly necessary and I can hardly convince him
if I’m not convinced myself. Techically, I see no real advantage of SCSI
miniports over this type of driver. The only real problem with XP was caused
by stupid (and probably intentional) changes in user mode expoder code. In
the previous mail I wrote about some advantages of this type of driver which
I see as important. Again, is it possible with SCSI miniport?

BTW, maybe you haven’t noticed I rarely ask for help here and most mails
about this subject were replies to other people problems. I already learnt
the best help give me my debugger and disassembler :wink:

Thanks for the example, I will examine it.

Best regards,

Michal Vodicka
Veridicom
(RKK - Skytale)
[WWW: http://www.veridicom.com , http://www.skytale.com]


From:
xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
Reply To: NT Developers Interest List
Sent: Sunday, July 15, 2001 3:00 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Defrag virtual disk on W2K

Hi Mike,

I think you spent more time writing messages about problems in your
software then it could actually take you to write it in the correct way
and
just forget about troubles for a pretty long time… Maybe even forever -)

I can understand you definitely. A lot of people started their NT kernel
development making sample RAM disk driver work with files instead of
memory. So you are one of them. Just like me -) The only problem you can
hardly call yourself a programmer if you only modify the existing DDK
source code to fit your needs. One day this will simply stop working for
you. Trust me -)

About what is possible for SCSI port/miniport drivers… Dowlnoad the
source code and prebuilt binaries from the link below ( To Peter
Viscarola:
I hope you’ll not treat this as commerical? I’m just trying to save a
couple of development days for this guy and maybe some others…) and make

some experiments with the code. For free. Than you can make a choice for
yourself: continiue support ugly class-level virtual disks or go further
with cool low-level disks (200% IMHO!!!)

My personal advice to you… Write SCSI miniport driver. Do not listen

to the guys who cannot stop telling there are no other ways of completing
requests from SCSIPORT context except initalizing timer callback either
directly by HwScsiTimer() or indireclty via ScsiPortNotification(
RequestTimerCall…) THIS IS NOT TRUE (I do not want to discuss the
reasons
making them do this. This is out of my bussiness) So just keep ptr to your

DEVICE_OBJECT and call yourself recursively with SRB_IO_CONTROL to
complete
SRB and the stuff will work just fine (This is not the only solution! You
can invent your own one). Total overhead will be so small you can just
neglect it… And all prizes and advantages (like Windows 9x/Me/NT/2K/XP
guaranteed work) will be yours -)

Regards,
Anton Kolomyeytsev

CoolDev.Com - Toolkits for Network & Storage Kernel Software Developers
“KoolSockets” & “KoolStorage” - TDI Client, Kernel Sockets, SCSI
port/miniport
http://www.CoolDev.Com xxxxx@CoolDev.Com
xxxxx@CoolDev.Com

On 07/13/01, “Michal Vodicka ” wrote:
> > IMHO implementing these IOCTLs won’t help. We have also problem with
> defrag
> > which I found two weeks before because nobody complained about it yet
> :slight_smile: It
> > simply refuses our virtual drives because of “unsupported media type” or
> so.
> > If I ever have time to solve this problem, I would check the way how it
> > makes this decision but at first I would check if defrag API alone does
> work
> > at all. There is some utility on System Internals website which allows
> it.
> >
> > As for the “correct” way… We developed our driver starting with
> RamDisk
> > sample when NT4 were young. We chosen this way because it was the most
> > straightforward one and also efficient one. For w2k only few changes
> were
> > necessary. The real fun started with XP but currently it seems to work
> well
> > and the driver is binary complatible for NT4/w2k/XP. Maybe I’m wrong but
> > still see some advantages of this driver concept – we
> > create/mount/dismount/delete virtual drives on demand and can assign any
> > free drive letter as for network drive mapping. This way we can support
> > terminal services (and XP fast user switching) i.e. drive letters are
> local
> > to sessions. Is it possible with SCSI port/miniport virtual drives?
> >
> > Best regards,
> >
> > Michal Vodicka
> > Veridicom
> > (RKK - Skytale)
> > [WWW: http://www.veridicom.com , http://www.skytale.com]
> >
> >
> >
> > > ----------
> > > From:
> > > xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
> > > Reply To: NT Developers Interest List
> > > Sent: Thursday, July 05, 2001 3:00 AM
> > > To: NT Developers Interest List
> > > Subject: [ntdev] Re: Defrag virtual disk on W2K
> > >
> > > Hi,
> > >
> > > Try to implement all IOCTLs you fail as unsupported. Maybe you’ll be
> lucky
> > >
> > > and your code will work with defrag. But I personally do not belive in
> > > this.
> > >
> > > About “correct” way of implementing of the virtual storage. That theme
> is
> > > pretty popular here. Try to search the archive. In a dew words… If
> you
> > > do
> > > not care much about performance write SCSI miniport driver. If you do
> > > write
> > > full SCSI port driver. I’ve wrote them both (SCSI port is nearly
> complete
> > > doing testing right now). You can download my company complete
> “Storage
> > > over IP solution” from www.cooldev.com. It’s free for non-commercial
> use.
> > >
> > > Regards,
> > > Anton
> > >
> > > On 07/05/01, “xxxxx@3com.com” wrote:
> > > > Thanks., Anton. Actually my driver supports the IOCTLs posted by
> Michael
> > > > Vodichka and it works fine with format/chkdsk, but not defrag. -:frowning:
> And I
> > > also
> > > > read the article at systeminternal.com about defrag. Here is the URL
> > > just
> > > > someone else also intereted:
> > > >
> > > > http://www.sysinternals.com/ntw2k/info/defrag.shtml
> > > >
> > > > It seems to me that the defrag IOCTLs is implemented by FS driver,
> and
> > > the only
> > > > IOCTL new sent to my driver on W2k is 0x4d0008 and 0x66001B which I
> just
> > > return
> > > > not supported. Could that be the reason?
> > > >
> > > > Anyway, what should be the correct way to implement virtual storage?
> I
> > > also
> > > > followed the other discusses about SCSI port/miniport. And it seems
> that
> > > SCSI
> > > > port driver is the best way to do it? If so how could I start it
> (There
> > > is
> > > > nothing in DDK talking about how to develop a SCSI port driver)? Any
> > > > book/information availble? Thanks again.
> > > >
> > > > Michael
> > > >
> > > >
> > > > Search the archive of this mail list. Michael Vodichka posted list
> of
> > > > IOCTLs you need to implement to make your (???) driver work on
> Win2K.
> > > And
> > > > prepare for even more fun on Win XP. The way was choosen by you to
> > > > implement virtual storage devices is not correct.
> > > >
> > > >
> > > > On 07/04/01, “xxxxx@3com.com” wrote:
> > > > > Hi All,
> > > > >
> > > > > I have a virtual disk driver on NT/W2k based on Ramdisk. The
> driver
> > > works fine
> > > > > with Diskeeper on NT4 (NT4 does not have a built-in defrag
> utility),
> > > but it
> > > > just
> > > > > does not show up in W2K built-in defrag utility. Would you please
> help
> > > me to
> > > > get
> > > > > it work with W2K defrag?
> > > > >
> > > > > Appreciate in advance.
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > —
> > > > You are currently subscribed to ntdev as: xxxxx@rkk.cz
> > > > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > >
> > > —
> > > You are currently subscribed to ntdev as: xxxxx@rkk.cz
> > > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@rkk.cz
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —
> You are currently subscribed to ntdev as: xxxxx@rkk.cz
> 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

Mike,

I know, supporting legacy code is not the best time spending you can
imagine for yourself -) But “one day this will stop working for you” (c)
me

I cannot answer your question about what’s approach superior. “For whom
how” (c) … If it works for you just great! Congrats. It was not working
for me -)

And yes I keep tracking who asks the questions and who writes replies to
them.
And I know too that disassemblers & debuggers are “white man’s best
friends” (c) not mine

Feel free to ask me personally about any problems you’ll find in the
samples.

Regards,
Anton Kolomyeytsev

CoolDev.Com - Toolkits for Network & Storage Kernel Software Developers
“KoolSockets” & “KoolStorage” - TDI Client, Kernel Sockets, iSCSI port
www.CoolDev.Com xxxxx@CoolDev.Com xxxxx@CoolDev.Com

the situation is a bit different. The original driver wrote my collegaue and
I got this project later to improve it and support new NT versions. It isn’t
modified RamDisk sample (well, maybe 10% of code is similar), it only works
similar way because it is the driver of the same class. In fact, solving
problems with w2k and XP now took me several days which is much lesser than
writting a new driver of different type. Maybe it would be more “correct”
but I haven’t time and approval for it. I would get approval only if I
convince my chief it is absolutelly necessary and I can hardly convince him
if I’m not convinced myself. Techically, I see no real advantage of SCSI
miniports over this type of driver. The only real problem with XP was caused
by stupid (and probably intentional) changes in user mode expoder code. In
the previous mail I wrote about some advantages of this type of driver which
I see as important. Again, is it possible with SCSI miniport?

BTW, maybe you haven’t noticed I rarely ask for help here and most mails
about this subject were replies to other people problems. I already learnt
the best help give me my debugger and disassembler :wink:

Thanks for the example, I will examine it.

Best regards,

Michal Vodicka
Veridicom
(RKK - Skytale)
[WWW: http://www.veridicom.com , http://www.skytale.com]

> ----------
> From:
> xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
> Reply To: NT Developers Interest List
> Sent: Sunday, July 15, 2001 3:00 AM
> To: NT Developers Interest List
> Subject: [ntdev] Re: Defrag virtual disk on W2K
>
> Hi Mike,
>
> I think you spent more time writing messages about problems in your
> software then it could actually take you to write it in the correct way
> and
> just forget about troubles for a pretty long time… Maybe even forever -)
>
> I can understand you definitely. A lot of people started their NT kernel
> development making sample RAM disk driver work with files instead of
> memory. So you are one of them. Just like me -) The only problem you can
> hardly call yourself a programmer if you only modify the existing DDK
> source code to fit your needs. One day this will simply stop working for
> you. Trust me -)
>
> About what is possible for SCSI port/miniport drivers… Dowlnoad the
> source code and prebuilt binaries from the link below ( To Peter
> Viscarola:
> I hope you’ll not treat this as commerical? I’m just trying to save a
> couple of development days for this guy and maybe some others…) and make
>
> some experiments with the code. For free. Than you can make a choice for
> yourself: continiue support ugly class-level virtual disks or go further
> with cool low-level disks (200% IMHO!!!)
>
> My personal advice to you… Write SCSI miniport driver. Do not listen
>
> to the guys who cannot stop telling there are no other ways of completing
> requests from SCSIPORT context except initalizing timer callback either
> directly by HwScsiTimer() or indireclty via ScsiPortNotification(
> RequestTimerCall…) THIS IS NOT TRUE (I do not want to discuss the
> reasons
> making them do this. This is out of my bussiness) So just keep ptr to your
>
> DEVICE_OBJECT and call yourself recursively with SRB_IO_CONTROL to
> complete
> SRB and the stuff will work just fine (This is not the only solution! You
> can invent your own one). Total overhead will be so small you can just
> neglect it… And all prizes and advantages (like Windows 9x/Me/NT/2K/XP
> guaranteed work) will be yours -)
>
> Regards,
> Anton Kolomyeytsev
>
> CoolDev.Com - Toolkits for Network & Storage Kernel Software Developers
> “KoolSockets” & “KoolStorage” - TDI Client, Kernel Sockets, SCSI
> port/miniport
> http://www.CoolDev.Com xxxxx@CoolDev.Com
> xxxxx@CoolDev.Com
>
> On 07/13/01, “Michal Vodicka ” wrote:
> > > IMHO implementing these IOCTLs won’t help. We have also problem with
> > defrag
> > > which I found two weeks before because nobody complained about it yet
> > :slight_smile: It
> > > simply refuses our virtual drives because of “unsupported media type” or
> > so.
> > > If I ever have time to solve this problem, I would check the way how it
> > > makes this decision but at first I would check if defrag API alone does
> > work
> > > at all. There is some utility on System Internals website which allows
> > it.
> > >
> > > As for the “correct” way… We developed our driver starting with
> > RamDisk
> > > sample when NT4 were young. We chosen this way because it was the most
> > > straightforward one and also efficient one. For w2k only few changes
> > were
> > > necessary. The real fun started with XP but currently it seems to work
> > well
> > > and the driver is binary complatible for NT4/w2k/XP. Maybe I’m wrong but
> > > still see some advantages of this driver concept – we
> > > create/mount/dismount/delete virtual drives on demand and can assign any
> > > free drive letter as for network drive mapping. This way we can support
> > > terminal services (and XP fast user switching) i.e. drive letters are
> > local
> > > to sessions. Is it possible with SCSI port/miniport virtual drives?
> > >
> > > Best regards,
> > >
> > > Michal Vodicka
> > > Veridicom
> > > (RKK - Skytale)
> > > [WWW: http://www.veridicom.com , http://www.skytale.com]
> > >
> > >
> > >
> > > > ----------
> > > > From:
> > > > xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
> > > > Reply To: NT Developers Interest List
> > > > Sent: Thursday, July 05, 2001 3:00 AM
> > > > To: NT Developers Interest List
> > > > Subject: [ntdev] Re: Defrag virtual disk on W2K
> > > >
> > > > Hi,
> > > >
> > > > Try to implement all IOCTLs you fail as unsupported. Maybe you’ll be
> > lucky
> > > >
> > > > and your code will work with defrag. But I personally do not belive in
> > > > this.
> > > >
> > > > About “correct” way of implementing of the virtual storage. That theme
> > is
> > > > pretty popular here. Try to search the archive. In a dew words… If
> > you
> > > > do
> > > > not care much about performance write SCSI miniport driver. If you do
> > > > write
> > > > full SCSI port driver. I’ve wrote them both (SCSI port is nearly
> > complete
> > > > doing testing right now). You can download my company complete
> > “Storage
> > > > over IP solution” from www.cooldev.com. It’s free for non-commercial
> > use.
> > > >
> > > > Regards,
> > > > Anton
> > > >
> > > > On 07/05/01, “xxxxx@3com.com” wrote:
> > > > > Thanks., Anton. Actually my driver supports the IOCTLs posted by
> > Michael
> > > > > Vodichka and it works fine with format/chkdsk, but not defrag. -:frowning:
> > And I
> > > > also
> > > > > read the article at systeminternal.com about defrag. Here is the URL
> > > > just
> > > > > someone else also intereted:
> > > > >
> > > > > http://www.sysinternals.com/ntw2k/info/defrag.shtml
> > > > >
> > > > > It seems to me that the defrag IOCTLs is implemented by FS driver,
> > and
> > > > the only
> > > > > IOCTL new sent to my driver on W2k is 0x4d0008 and 0x66001B which I
> > just
> > > > return
> > > > > not supported. Could that be the reason?
> > > > >
> > > > > Anyway, what should be the correct way to implement virtual storage?
> > I
> > > > also
> > > > > followed the other discusses about SCSI port/miniport. And it seems
> > that
> > > > SCSI
> > > > > port driver is the best way to do it? If so how could I start it
> > (There
> > > > is
> > > > > nothing in DDK talking about how to develop a SCSI port driver)? Any
> > > > > book/information availble? Thanks again.
> > > > >
> > > > > Michael
> > > > >
> > > > >
> > > > > Search the archive of this mail list. Michael Vodichka posted list
> > of
> > > > > IOCTLs you need to implement to make your (???) driver work on
> > Win2K.
> > > > And
> > > > > prepare for even more fun on Win XP. The way was choosen by you to
> > > > > implement virtual storage devices is not correct.
> > > > >
> > > > >
> > > > > On 07/04/01, “xxxxx@3com.com” wrote:
> > > > > > Hi All,
> > > > > >
> > > > > > I have a virtual disk driver on NT/W2k based on Ramdisk. The
> > driver
> > > > works fine
> > > > > > with Diskeeper on NT4 (NT4 does not have a built-in defrag
> > utility),
> > > > but it
> > > > > just
> > > > > > does not show up in W2K built-in defrag utility. Would you please
> > help
> > > > me to
> > > > > get
> > > > > > it work with W2K defrag?
> > > > > >
> > > > > > Appreciate in advance.
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > —
> > > > > You are currently subscribed to ntdev as: xxxxx@rkk.cz
> > > > > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > > >
> > > > —
> > > > You are currently subscribed to ntdev as: xxxxx@rkk.cz
> > > > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > > >
> > >
> > > —
> > > You are currently subscribed to ntdev as: xxxxx@rkk.cz
> > > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@rkk.cz
> > 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


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