Problem with filespy?

I noticed that in filespy.c that the following functions pass down its
device object instead of the targets device object. Is this correct for
these routines? It looks like a bug to me.
AcquireForModWrite
ReleaseForModWrite
AcquireForCcFlush
ReleaseForCcFlush


You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Rob,

You are correct that these 4 routines are wrong in that they should have
passed the “deviceObject” parameter not the “DeviceObject” parameter
(notice the case difference).

The reason no one has noticed this before is because these routines are
never actually called inside a filter. For historical reasons the
kernel has always bypassed these routines (as well as
AcquireFileForNtCreateSection and ReleaseFileForNtCreateSection) and
called directly to the base file system.

For backwards compatibility reasons it was decided that we could not
modify the kernel to start calling the filters for these APIs (because
existing filters have untested code to handle this path, FileSpy being a
good example of this). To fix this a new API has been added to Whistler
called FsRtlRegisterFileSystemFilterCallbacks which allows a filter to
register for these missing callbacks.

If you look at the Whistler IFSKit you will see that these 6 obsolete
FastIO interfaces no longer have routines assigned to them and it now
uses the new FsRtlRegisterFileSystemFilterCallbacks API. There is also
documentation for this and other new features in Whistler.

Neal Christiansen

-----Original Message-----
From: Rob Green [mailto:xxxxx@cdp.com]
Sent: Tuesday, January 30, 2001 1:29 PM
To: File Systems Developers
Subject: [ntfsd] Problem with filespy?

I noticed that in filespy.c that the following functions pass down its
device object instead of the targets device object. Is this correct for
these routines? It looks like a bug to me.
AcquireForModWrite
ReleaseForModWrite
AcquireForCcFlush
ReleaseForCcFlush


You are currently subscribed to ntfsd as: xxxxx@Exchange.Microsoft.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com

>>If you look at the Whistler IFSKit

Do we have a new version of IFSKit for Whistler ? Where we can find it ?

Cathy

-----Original Message-----
From: Neal Christiansen [mailto:xxxxx@Exchange.Microsoft.com]
Sent: Tuesday, January 30, 2001 4:32 PM
To: File Systems Developers
Subject: [ntfsd] RE: Problem with filespy?

Rob,

You are correct that these 4 routines are wrong in that they should have
passed the “deviceObject” parameter not the “DeviceObject” parameter
(notice the case difference).

The reason no one has noticed this before is because these routines are
never actually called inside a filter. For historical reasons the
kernel has always bypassed these routines (as well as
AcquireFileForNtCreateSection and ReleaseFileForNtCreateSection) and
called directly to the base file system.

For backwards compatibility reasons it was decided that we could not
modify the kernel to start calling the filters for these APIs (because
existing filters have untested code to handle this path, FileSpy being a
good example of this). To fix this a new API has been added to Whistler
called FsRtlRegisterFileSystemFilterCallbacks which allows a filter to
register for these missing callbacks.

If you look at the Whistler IFSKit you will see that these 6 obsolete
FastIO interfaces no longer have routines assigned to them and it now
uses the new FsRtlRegisterFileSystemFilterCallbacks API. There is also
documentation for this and other new features in Whistler.

Neal Christiansen

-----Original Message-----
From: Rob Green [mailto:xxxxx@cdp.com]
Sent: Tuesday, January 30, 2001 1:29 PM
To: File Systems Developers
Subject: [ntfsd] Problem with filespy?

I noticed that in filespy.c that the following functions pass down its
device object instead of the targets device object. Is this correct for
these routines? It looks like a bug to me.
AcquireForModWrite
ReleaseForModWrite
AcquireForCcFlush
ReleaseForCcFlush


You are currently subscribed to ntfsd as: xxxxx@Exchange.Microsoft.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: xxxxx@unisys.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com