How to tell if file is mapped?

In an FS filter driver, during processing if IRP_MJ_CLEANUP messages, is
there a way to tell if the file in question was opened for memory mapped
I/O?

We are currently using CcIsFileCached() to try to answer this question, but
it gives an answer of FALSE for a file we know has been mapped.

Carl Appellof


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

I use fcb->SectionObjectPointer. If the DataSectionObject or
ImageSectionObject pointer in the SECTION_OBJECT_POINTERS structure is
non-null, then it’s a good bet it has been accessed for memory-mapped I/O.

It works for me anyway!

Brian

On 07/23/01, “xxxxx@veritas.com” wrote:

In an FS filter driver, during processing if IRP_MJ_CLEANUP messages, is
there a way to tell if the file in question was opened for memory mapped
I/O?

We are currently using CcIsFileCached() to try to answer this question, but
it gives an answer of FALSE for a file we know has been mapped.

Carl Appellof


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


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

> In an FS filter driver, during processing if IRP_MJ_CLEANUP messages, is

there a way to tell if the file in question was opened for memory mapped
I/O?

IIRC CcPurgeCacheSection fails in this case.

Max


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

Hmmm. I always see DataSectionObject as non-null during processing of
IRP_MJ_CLEANUP, even for regular I/O to a non-mapped file. I don’t think
that’s the answer.

The CcIsFileCached() macro checks the SharedCacheMap field of the
SECTION_OBJECT_POINTERS, and this appears to be NULL in the mapped file
case I’m looking at.

Carl

On 07/24/01, “xxxxx@iOra.com” wrote:

I use fcb->SectionObjectPointer. If the DataSectionObject or
ImageSectionObject pointer in the SECTION_OBJECT_POINTERS structure is
non-null, then it’s a good bet it has been accessed for memory-mapped I/O.

It works for me anyway!

Brian

On 07/23/01, “xxxxx@veritas.com” wrote:
> In an FS filter driver, during processing if IRP_MJ_CLEANUP messages, is
> there a way to tell if the file in question was opened for memory mapped
> I/O?
>
> We are currently using CcIsFileCached() to try to answer this question, but
> it gives an answer of FALSE for a file we know has been mapped.
>
> Carl Appellof
>
> —
> 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


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


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

The image section object exists for executables, and it has nothing do
to with user memory mapped IO.

FSRTL_FLAG_USER_MAPPED_FILE in
((PFSRTL_COMMON_FCB_HEADER)FsContext)->Flags is set on the first user
mapping. It is not unset when the last unmap occurs; there is no way to
retrieve that information, though MmCanFileBeTruncated() answers a form
of the question (you cannot truncate under a mapped section).

-----Original Message-----
From: xxxxx@iOra.com [mailto:xxxxx@iOra.com]
Sent: Tuesday, July 24, 2001 1:32 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

I use fcb->SectionObjectPointer. If the DataSectionObject or
ImageSectionObject pointer in the SECTION_OBJECT_POINTERS structure is
non-null, then it’s a good bet it has been accessed for memory-mapped
I/O.

It works for me anyway!

Brian

On 07/23/01, “xxxxx@veritas.com” wrote:

In an FS filter driver, during processing if IRP_MJ_CLEANUP messages,
is there a way to tell if the file in question was opened for memory
mapped I/O?

We are currently using CcIsFileCached() to try to answer this
question, but it gives an answer of FALSE for a file we know has been
mapped.

Carl Appellof


You are currently subscribed to ntfsd as: xxxxx@windows.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@windows.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

Does MmCanFileBeTruncated() return TRUE only if the user has the file
mapped? In other words, if the user has unmapped the file but the OS still
has it mapped for caching purposes will it return TRUE?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Tuesday, July 24, 2001 12:40 PM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

The image section object exists for executables, and it has nothing do
to with user memory mapped IO.

FSRTL_FLAG_USER_MAPPED_FILE in
((PFSRTL_COMMON_FCB_HEADER)FsContext)->Flags is set on the first user
mapping. It is not unset when the last unmap occurs; there is no way to
retrieve that information, though MmCanFileBeTruncated() answers a form
of the question (you cannot truncate under a mapped section).

-----Original Message-----
From: xxxxx@iOra.com [mailto:xxxxx@iOra.com]
Sent: Tuesday, July 24, 2001 1:32 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

I use fcb->SectionObjectPointer. If the DataSectionObject or
ImageSectionObject pointer in the SECTION_OBJECT_POINTERS structure is
non-null, then it’s a good bet it has been accessed for memory-mapped
I/O.

It works for me anyway!

Brian

On 07/23/01, “xxxxx@veritas.com” wrote:

In an FS filter driver, during processing if IRP_MJ_CLEANUP messages,
is there a way to tell if the file in question was opened for memory
mapped I/O?

We are currently using CcIsFileCached() to try to answer this
question, but it gives an answer of FALSE for a file we know has been
mapped.

Carl Appellof


You are currently subscribed to ntfsd as: xxxxx@windows.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@windows.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@legato.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

Yes, it will return true in that case. The simplest case where this can
be shown is through FatSetEndOfFileInfo in the IFSKit source. Its
MmCanFileBeTruncated() call is its protection.

-----Original Message-----
From: Ken Galipeau [mailto:xxxxx@legato.com]
Sent: Monday, July 30, 2001 9:57 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Does MmCanFileBeTruncated() return TRUE only if the user has the file
mapped? In other words, if the user has unmapped the file but the OS
still has it mapped for caching purposes will it return TRUE?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Tuesday, July 24, 2001 12:40 PM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

The image section object exists for executables, and it has nothing do
to with user memory mapped IO.

FSRTL_FLAG_USER_MAPPED_FILE in
((PFSRTL_COMMON_FCB_HEADER)FsContext)->Flags is set on the first user
mapping. It is not unset when the last unmap occurs; there is no way to
retrieve that information, though MmCanFileBeTruncated() answers a form
of the question (you cannot truncate under a mapped section).

-----Original Message-----
From: xxxxx@iOra.com [mailto:xxxxx@iOra.com]
Sent: Tuesday, July 24, 2001 1:32 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

I use fcb->SectionObjectPointer. If the DataSectionObject or
ImageSectionObject pointer in the SECTION_OBJECT_POINTERS structure is
non-null, then it’s a good bet it has been accessed for memory-mapped
I/O.

It works for me anyway!

Brian

On 07/23/01, “xxxxx@veritas.com” wrote:

In an FS filter driver, during processing if IRP_MJ_CLEANUP messages,
is there a way to tell if the file in question was opened for memory
mapped I/O?

We are currently using CcIsFileCached() to try to answer this
question, but it gives an answer of FALSE for a file we know has been
mapped.

Carl Appellof


You are currently subscribed to ntfsd as: xxxxx@windows.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@windows.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@legato.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: xxxxx@windows.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

So there is really no way to tell when the USER has unmapped the file?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Monday, July 30, 2001 1:17 PM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Yes, it will return true in that case. The simplest case where this can
be shown is through FatSetEndOfFileInfo in the IFSKit source. Its
MmCanFileBeTruncated() call is its protection.

-----Original Message-----
From: Ken Galipeau [mailto:xxxxx@legato.com]
Sent: Monday, July 30, 2001 9:57 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Does MmCanFileBeTruncated() return TRUE only if the user has the file
mapped? In other words, if the user has unmapped the file but the OS
still has it mapped for caching purposes will it return TRUE?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Tuesday, July 24, 2001 12:40 PM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

The image section object exists for executables, and it has nothing do
to with user memory mapped IO.

FSRTL_FLAG_USER_MAPPED_FILE in
((PFSRTL_COMMON_FCB_HEADER)FsContext)->Flags is set on the first user
mapping. It is not unset when the last unmap occurs; there is no way to
retrieve that information, though MmCanFileBeTruncated() answers a form
of the question (you cannot truncate under a mapped section).

-----Original Message-----
From: xxxxx@iOra.com [mailto:xxxxx@iOra.com]
Sent: Tuesday, July 24, 2001 1:32 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

I use fcb->SectionObjectPointer. If the DataSectionObject or
ImageSectionObject pointer in the SECTION_OBJECT_POINTERS structure is
non-null, then it’s a good bet it has been accessed for memory-mapped
I/O.

It works for me anyway!

Brian

On 07/23/01, “xxxxx@veritas.com” wrote:

In an FS filter driver, during processing if IRP_MJ_CLEANUP messages,
is there a way to tell if the file in question was opened for memory
mapped I/O?

We are currently using CcIsFileCached() to try to answer this
question, but it gives an answer of FALSE for a file we know has been
mapped.

Carl Appellof


You are currently subscribed to ntfsd as: xxxxx@windows.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@windows.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@legato.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: xxxxx@windows.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@legato.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

Short of an opportunistic call, no, there is currently no way.

-----Original Message-----
From: Ken Galipeau [mailto:xxxxx@legato.com]
Sent: Monday, July 30, 2001 11:22 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

So there is really no way to tell when the USER has unmapped the file?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Monday, July 30, 2001 1:17 PM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Yes, it will return true in that case. The simplest case where this can
be shown is through FatSetEndOfFileInfo in the IFSKit source. Its
MmCanFileBeTruncated() call is its protection.

-----Original Message-----
From: Ken Galipeau [mailto:xxxxx@legato.com]
Sent: Monday, July 30, 2001 9:57 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Does MmCanFileBeTruncated() return TRUE only if the user has the file
mapped? In other words, if the user has unmapped the file but the OS
still has it mapped for caching purposes will it return TRUE?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Tuesday, July 24, 2001 12:40 PM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

The image section object exists for executables, and it has nothing do
to with user memory mapped IO.

FSRTL_FLAG_USER_MAPPED_FILE in
((PFSRTL_COMMON_FCB_HEADER)FsContext)->Flags is set on the first user
mapping. It is not unset when the last unmap occurs; there is no way to
retrieve that information, though MmCanFileBeTruncated() answers a form
of the question (you cannot truncate under a mapped section).

-----Original Message-----
From: xxxxx@iOra.com [mailto:xxxxx@iOra.com]
Sent: Tuesday, July 24, 2001 1:32 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

I use fcb->SectionObjectPointer. If the DataSectionObject or
ImageSectionObject pointer in the SECTION_OBJECT_POINTERS structure is
non-null, then it’s a good bet it has been accessed for memory-mapped
I/O.

It works for me anyway!

Brian

On 07/23/01, “xxxxx@veritas.com” wrote:

In an FS filter driver, during processing if IRP_MJ_CLEANUP messages,
is there a way to tell if the file in question was opened for memory
mapped I/O?

We are currently using CcIsFileCached() to try to answer this
question, but it gives an answer of FALSE for a file we know has been
mapped.

Carl Appellof


You are currently subscribed to ntfsd as: xxxxx@windows.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@windows.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@legato.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: xxxxx@windows.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@legato.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: xxxxx@windows.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

How would an opportunistic call work? Does one exist?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Wednesday, August 01, 2001 2:44 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Short of an opportunistic call, no, there is currently no way.

-----Original Message-----
From: Ken Galipeau [mailto:xxxxx@legato.com]
Sent: Monday, July 30, 2001 11:22 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

So there is really no way to tell when the USER has unmapped the file?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Monday, July 30, 2001 1:17 PM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Yes, it will return true in that case. The simplest case where this can
be shown is through FatSetEndOfFileInfo in the IFSKit source. Its
MmCanFileBeTruncated() call is its protection.

-----Original Message-----
From: Ken Galipeau [mailto:xxxxx@legato.com]
Sent: Monday, July 30, 2001 9:57 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Does MmCanFileBeTruncated() return TRUE only if the user has the file
mapped? In other words, if the user has unmapped the file but the OS
still has it mapped for caching purposes will it return TRUE?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Tuesday, July 24, 2001 12:40 PM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

The image section object exists for executables, and it has nothing do
to with user memory mapped IO.

FSRTL_FLAG_USER_MAPPED_FILE in
((PFSRTL_COMMON_FCB_HEADER)FsContext)->Flags is set on the first user
mapping. It is not unset when the last unmap occurs; there is no way to
retrieve that information, though MmCanFileBeTruncated() answers a form
of the question (you cannot truncate under a mapped section).

-----Original Message-----
From: xxxxx@iOra.com [mailto:xxxxx@iOra.com]
Sent: Tuesday, July 24, 2001 1:32 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

I use fcb->SectionObjectPointer. If the DataSectionObject or
ImageSectionObject pointer in the SECTION_OBJECT_POINTERS structure is
non-null, then it’s a good bet it has been accessed for memory-mapped
I/O.

It works for me anyway!

Brian

On 07/23/01, “xxxxx@veritas.com” wrote:

In an FS filter driver, during processing if IRP_MJ_CLEANUP messages,
is there a way to tell if the file in question was opened for memory
mapped I/O?

We are currently using CcIsFileCached() to try to answer this
question, but it gives an answer of FALSE for a file we know has been
mapped.

Carl Appellof


You are currently subscribed to ntfsd as: xxxxx@windows.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@windows.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@legato.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: xxxxx@windows.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@legato.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: xxxxx@windows.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@legato.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

I meant opportunistic in the sense that when you have the opportunity to
call it, it will return a correct answer. There is, however, no callback
or similar event to let you know that the user section has been torn
down.

-----Original Message-----
From: Ken Galipeau [mailto:xxxxx@legato.com]
Sent: Wednesday, August 01, 2001 8:18 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

How would an opportunistic call work? Does one exist?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Wednesday, August 01, 2001 2:44 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Short of an opportunistic call, no, there is currently no way.

-----Original Message-----
From: Ken Galipeau [mailto:xxxxx@legato.com]
Sent: Monday, July 30, 2001 11:22 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

So there is really no way to tell when the USER has unmapped the file?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Monday, July 30, 2001 1:17 PM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Yes, it will return true in that case. The simplest case where this can
be shown is through FatSetEndOfFileInfo in the IFSKit source. Its
MmCanFileBeTruncated() call is its protection.

-----Original Message-----
From: Ken Galipeau [mailto:xxxxx@legato.com]
Sent: Monday, July 30, 2001 9:57 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

Does MmCanFileBeTruncated() return TRUE only if the user has the file
mapped? In other words, if the user has unmapped the file but the OS
still has it mapped for caching purposes will it return TRUE?

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Daniel Lovinger
Sent: Tuesday, July 24, 2001 12:40 PM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

The image section object exists for executables, and it has nothing do
to with user memory mapped IO.

FSRTL_FLAG_USER_MAPPED_FILE in
((PFSRTL_COMMON_FCB_HEADER)FsContext)->Flags is set on the first user
mapping. It is not unset when the last unmap occurs; there is no way to
retrieve that information, though MmCanFileBeTruncated() answers a form
of the question (you cannot truncate under a mapped section).

-----Original Message-----
From: xxxxx@iOra.com [mailto:xxxxx@iOra.com]
Sent: Tuesday, July 24, 2001 1:32 AM
To: File Systems Developers
Subject: [ntfsd] Re: How to tell if file is mapped?

I use fcb->SectionObjectPointer. If the DataSectionObject or
ImageSectionObject pointer in the SECTION_OBJECT_POINTERS structure is
non-null, then it’s a good bet it has been accessed for memory-mapped
I/O.

It works for me anyway!

Brian

On 07/23/01, “xxxxx@veritas.com” wrote:

In an FS filter driver, during processing if IRP_MJ_CLEANUP messages,
is there a way to tell if the file in question was opened for memory
mapped I/O?

We are currently using CcIsFileCached() to try to answer this
question, but it gives an answer of FALSE for a file we know has been
mapped.

Carl Appellof


You are currently subscribed to ntfsd as: xxxxx@windows.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@windows.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@legato.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: xxxxx@windows.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@legato.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: xxxxx@windows.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@legato.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntfsd as: xxxxx@windows.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