Dismount Volume in 9x/NT

Hi All,
We are writing S/w for a removable Disk Drive(IDE). Using vendor
specific commands we can set some properties of the drive. How can we get
the File System to recognize such change in device property.

eg:we can make the drive Write Protected. But after doing this, how can we
inform the FS that the volumes (previously writable) have now become Write
Protected.

In our case, the write operations thru the Explorer (after making the drive
WP) results in “Disk Write Error” blue screen in 9x & “Lost delayed System
Data …” message in NT. How to prevent this?

We have tried to lock all the volumes in the drive before the operation and
Dismount(only in NT using DevIoctl), unlock the volumes after the Write
Protect. We were hoping that the Dismount will result in updating the
internal volume data /dirty flag and thus when the FS reloads the volume,
the drive sts will get updated.

Can you pls provide direction/pointers for solving this problem.

Thanks in advance
balan

“What lies behind us and what lies before us are tiny matters compared to
what lies within us.” —Emerson

> eg:we can make the drive Write Protected. But after doing this, how can we

inform the FS that the volumes (previously writable) have now become Write
Protected.

In our case, the write operations thru the Explorer (after making the
drive
WP) results in “Disk Write Error” blue screen in 9x & “Lost delayed System
Data …” message in NT. How to prevent this?

Try to raise STATUS_VERIFY_REQUIRED and then handle the verify IRPs
correctly.
Failing writes is an absolutely improper way - use IOCTL_DISK_IS_WRITABLE
instead.

Max

Thanks Max for the mail. i have some doubts…

We are using a normal KMD for accessing the IDE controller registers for
getting/setting the values. I am inlining the portion of mail from our team
member…

—>>
We have a doubt regarding synchronised access to
the IDe controller regsiters from our custom driver which is implemented
for sending vendor unique commands to our storage drive.But we feel it is
not proper as the IDE controller registers are accessed by atapi.sys and
will cause synchronisation problems. Is it proper to replace atapi.sys with
our own miniport. Or is it
practical to write a filter to atapi.sys & use IDE PASSTHROUGH.

It would be of great help if you could get us some pointers/references on
this issue.
<< —

TIA
balan

Subject: Re: Dismount Volume in 9x/NT
From: “Maxim S. Shatskih”
Date: Mon, 17 Jul 2000 20:34:55 +0400
X-Message-Number: 16

> eg:we can make the drive Write Protected. But after doing this, how can we
> inform the FS that the volumes (previously writable) have now become Write
> Protected.
>
> In our case, the write operations thru the Explorer (after making the
drive
> WP) results in “Disk Write Error” blue screen in 9x & “Lost delayed System
> Data …” message in NT. How to prevent this?

Try to raise STATUS_VERIFY_REQUIRED and then handle the verify IRPs
correctly.
Failing writes is an absolutely improper way - use IOCTL_DISK_IS_WRITABLE
instead.

Max

----------------------------------------------
“What lies behind us and what lies before us are tiny matters compared to
what lies within us.” —Emerson

> We are using a normal KMD for accessing the IDE controller registers for

getting/setting the values. I am inlining the portion of mail from our
team
member…

Yes, surely replace ATAPI with your own miniport.

Max

I replaced ATAPI.SYS with my own to support Compact Flash HotSwapping. Works
OK.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of BALAN
Sent: Tuesday, July 18, 2000 3:18 AM
To: File Systems Developers
Cc: ‘xxxxx@storagecraft.com’
Subject: [ntfsd] Re:Re: Dismount Volume in 9x/NT

Thanks Max for the mail. i have some doubts…

We are using a normal KMD for accessing the IDE controller registers for
getting/setting the values. I am inlining the portion of mail
from our team
member…

—>>
We have a doubt regarding synchronised access to
the IDe controller regsiters from our custom driver which is implemented
for sending vendor unique commands to our storage drive.But we feel it is
not proper as the IDE controller registers are accessed by atapi.sys and
will cause synchronisation problems. Is it proper to replace
atapi.sys with
our own miniport. Or is it
practical to write a filter to atapi.sys & use IDE PASSTHROUGH.

It would be of great help if you could get us some pointers/references on
this issue.
<< —

TIA
balan

Subject: Re: Dismount Volume in 9x/NT
From: “Maxim S. Shatskih”
> Date: Mon, 17 Jul 2000 20:34:55 +0400
> X-Message-Number: 16
>
> > eg:we can make the drive Write Protected. But after doing this,
> how can we
> > inform the FS that the volumes (previously writable) have now
> become Write
> > Protected.
> >
> > In our case, the write operations thru the Explorer (after making the
> drive
> > WP) results in “Disk Write Error” blue screen in 9x & “Lost
> delayed System
> > Data …” message in NT. How to prevent this?
>
> Try to raise STATUS_VERIFY_REQUIRED and then handle the verify IRPs
> correctly.
> Failing writes is an absolutely improper way - use IOCTL_DISK_IS_WRITABLE
> instead.
>
> Max
>
>
>
> ----------------------------------------------
> “What lies behind us and what lies before us are tiny matters compared to
> what lies within us.” —Emerson
>
>
>
> —
> You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>

Thje ATAPI sample (in NT4 DDK) already supports IDE_PASS_THROUGH. And if you
have your own miniport driver for various reasons, only one of them can
control the ide and so you HAVE to replace the microsoft supplied driver
with yours.

Raja

----- Original Message -----
From: “BALAN”
To: “File Systems Developers”
Cc:
Sent: Tuesday, July 18, 2000 3:18 AM
Subject: [ntfsd] Re:Re: Dismount Volume in 9x/NT

>
> Thanks Max for the mail. i have some doubts…
>
> We are using a normal KMD for accessing the IDE controller registers for
> getting/setting the values. I am inlining the portion of mail from our
team
> member…
>
> —>>
> We have a doubt regarding synchronised access to
> the IDe controller regsiters from our custom driver which is implemented
> for sending vendor unique commands to our storage drive.But we feel it is
> not proper as the IDE controller registers are accessed by atapi.sys and
> will cause synchronisation problems. Is it proper to replace atapi.sys
with
> our own miniport. Or is it
> practical to write a filter to atapi.sys & use IDE PASSTHROUGH.
>
> It would be of great help if you could get us some pointers/references on
> this issue.
> << —
>
> TIA
> balan
>
>
> Subject: Re: Dismount Volume in 9x/NT
> From: “Maxim S. Shatskih”
> Date: Mon, 17 Jul 2000 20:34:55 +0400
> X-Message-Number: 16
>
> > eg:we can make the drive Write Protected. But after doing this, how can
we
> > inform the FS that the volumes (previously writable) have now become
Write
> > Protected.
> >
> > In our case, the write operations thru the Explorer (after making the
> drive
> > WP) results in “Disk Write Error” blue screen in 9x & “Lost delayed
System
> > Data …” message in NT. How to prevent this?
>
> Try to raise STATUS_VERIFY_REQUIRED and then handle the verify IRPs
> correctly.
> Failing writes is an absolutely improper way - use IOCTL_DISK_IS_WRITABLE
> instead.
>
> Max
>
>
>
> ----------------------------------------------
> “What lies behind us and what lies before us are tiny matters compared to
> what lies within us.” —Emerson
>
>
>
> —
> You are currently subscribed to ntfsd as: xxxxx@hotmail.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>
>

Yes. I had to re-implement all support for IDE/ATA in my modified driver;
and I think I did a better job than the MS driver :slight_smile:

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Raja
Sent: Tuesday, July 18, 2000 10:44 AM
To: File Systems Developers
Subject: [ntfsd] Re:Re: Dismount Volume in 9x/NT

Thje ATAPI sample (in NT4 DDK) already supports IDE_PASS_THROUGH.
And if you
have your own miniport driver for various reasons, only one of them can
control the ide and so you HAVE to replace the microsoft supplied driver
with yours.

Raja

----- Original Message -----
From: “BALAN”
> To: “File Systems Developers”
> Cc:
> Sent: Tuesday, July 18, 2000 3:18 AM
> Subject: [ntfsd] Re:Re: Dismount Volume in 9x/NT
>
>
> >
> > Thanks Max for the mail. i have some doubts…
> >
> > We are using a normal KMD for accessing the IDE controller registers for
> > getting/setting the values. I am inlining the portion of mail from our
> team
> > member…
> >
> > —>>
> > We have a doubt regarding synchronised access to
> > the IDe controller regsiters from our custom driver which is
> implemented
> > for sending vendor unique commands to our storage drive.But we
> feel it is
> > not proper as the IDE controller registers are accessed by atapi.sys and
> > will cause synchronisation problems. Is it proper to replace atapi.sys
> with
> > our own miniport. Or is it
> > practical to write a filter to atapi.sys & use IDE PASSTHROUGH.
> >
> > It would be of great help if you could get us some
> pointers/references on
> > this issue.
> > << —
> >
> > TIA
> > balan
> >
> >
> > Subject: Re: Dismount Volume in 9x/NT
> > From: “Maxim S. Shatskih”
> > Date: Mon, 17 Jul 2000 20:34:55 +0400
> > X-Message-Number: 16
> >
> > > eg:we can make the drive Write Protected. But after doing
> this, how can
> we
> > > inform the FS that the volumes (previously writable) have now become
> Write
> > > Protected.
> > >
> > > In our case, the write operations thru the Explorer (after making the
> > drive
> > > WP) results in “Disk Write Error” blue screen in 9x & “Lost delayed
> System
> > > Data …” message in NT. How to prevent this?
> >
> > Try to raise STATUS_VERIFY_REQUIRED and then handle the verify IRPs
> > correctly.
> > Failing writes is an absolutely improper way - use
> IOCTL_DISK_IS_WRITABLE
> > instead.
> >
> > Max
> >
> >
> >
> > ----------------------------------------------
> > “What lies behind us and what lies before us are tiny matters
> compared to
> > what lies within us.” —Emerson
> >
> >
> >
> > —
> > You are currently subscribed to ntfsd as: xxxxx@hotmail.com
> > To unsubscribe send a blank email to $subst(‘Email.Unsub’)
> >
> >
>
> —
> You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>

Thanks Max for the info.

One more doubt.

We were having the view that We shouldnot replace the IDE
miniport(atapi.sys),It can be some custom vendor made supporting some
additional functionalities (just like us).

Thanks
balan

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Tuesday, July 18, 2000 8:11 PM
To: BALAN; xxxxx@lists.osr.com
Subject: Re: Re:Re: Dismount Volume in 9x/NT

We are using a normal KMD for accessing the IDE controller registers for
getting/setting the values. I am inlining the portion of mail from our
team
member…

Yes, surely replace ATAPI with your own miniport.

Max

For this you will have to write a VxD following VSD guidelines and register
it with IOS (with DRP_VSD_9 in the DriverRegisterationPacket). If you are
talking about NT, insert your driver above the Miniport and below the class
driver.

Raja

Thanks Max for the info.

One more doubt.

We were having the view that We shouldnot replace the IDE
miniport(atapi.sys),It can be some custom vendor made supporting some
additional functionalities (just like us).

Thanks
balan

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Tuesday, July 18, 2000 8:11 PM
To: BALAN; xxxxx@lists.osr.com
Subject: Re: Re:Re: Dismount Volume in 9x/NT

> We are using a normal KMD for accessing the IDE controller registers for
> getting/setting the values. I am inlining the portion of mail from our
team
> member…

Yes, surely replace ATAPI with your own miniport.

Max


You are currently subscribed to ntfsd as: xxxxx@hotmail.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)