You should not detach until your filter is called at its FastIoDetachDevice
entry point. Otherwise, you may cause problems for other filters by
prematurely detaching. The FastIoDetachDevice entry point exists for the
sole purpose of notifying attached devices that they should detach because
the device object they’re filtering is being deleted.
As for FASTFAT resurrecting the same device object, this is not uncommon.
If there are still open files on the file system, its device object will not
go away, even if it is dismounted. Hence, if FASTFAT detects that a file
system is being remounted, and there is still a file system device object
for that file system, then FASTFAT will change the Vpb pointer in the volume
device to point to the old Vpb, and free the new Vpb. This effectively
reinstates the formerly dismounted file system device object. A simple
solution to this problem is to do the right thing and not detach your
filtering device object until your filter is called at its
FastIoDetachDevice entry point.
By the way, if you don’t have a copy of the IFS Kit, you should purchase
one.
Regards,
Rob
-----Original Message-----
From: Ho Mun Chuen [mailto:xxxxx@pmail.ntu.edu.sg]
Sent: Tuesday, July 04, 2000 4:52 AM
To: File Systems Developers
Subject: [ntfsd] how to handle removeable media with file
system filter
driver?currently i detach my device from the target fat device for
floppy when the
IRP_MJ_FILE_SYSTEM_CONTROL completes with an error of
STATUS_WRONG_VOLUME.
except for the fat device that was created when the first floppy was
inserted, subsequent fat devices created for new mounts as a result of
change in floppy were deleted by the system when another floppy change
happens. surprisingly, this fat device for the first floppy access is
sometimes being returned back after a successful mount, and
my device will
attach to it again.can anyone explain why? is there a way to enable the deletion
of this fat
device? or is its persistence on purpose?Ho Mun Chuen
xxxxx@pmail.ntu.edu.sg
@@ “Not everything that counts can be counted;
<” )~ and not everything that can be counted counts"
//\ … Albert Einstein
You are currently subscribed to ntfsd as: xxxxx@nsisw.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)