Problems after preventing access to files

Hi all,

I’m experiencing a problem after I want to stop denying open access to
files.

I deny open access by doing the following in a worker routine during
completion.


pContext->pOriginalIrp->IoStatus.Status = STATUS_ACCESS_DENIED;
pContext->pOriginalIrp->IoStatus.Information = 0;
IoCompleteRequest( pContext->pOriginalIrp, IO_NO_INCREMENT );
ExFreePool( pContext );


The problem i’m experiencing is that once I stop blocking open access to the
file in question it can’t be deleted, rename or overwritten, but it can be
copied.

Has anyone experienced this before?

Best Regards,

Rob Linegar
Software Engineer
Data Encryption Systems Limited

It seems you are leaving a handle open for the file.

Inaki.

-----Original Message-----
From: Rob Linegar
Sent: jueves 14 de septiembre de 2000 18:10
To: File Systems Developers
Subject: [ntfsd] Problems after preventing access to files

Hi all,

I’m experiencing a problem after I want to stop denying open access to
files.

I deny open access by doing the following in a worker routine during
completion.


pContext->pOriginalIrp->IoStatus.Status = STATUS_ACCESS_DENIED;
pContext->pOriginalIrp->IoStatus.Information = 0;
IoCompleteRequest( pContext->pOriginalIrp, IO_NO_INCREMENT );
ExFreePool( pContext );


The problem i’m experiencing is that once I stop blocking open access to
the
file in question it can’t be deleted, rename or overwritten, but it can be
copied.

Has anyone experienced this before?

Best Regards,

Rob Linegar
Software Engineer
Data Encryption Systems Limited


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

Yes, I thought this at first, but I don’t actually open the file myself
anywhere.

All I did to reproduce the problem was set a flag from an ioctl and in the
worker check this flag, if the flag is set deny access to the specified
file.

HandleEx from sysinternals shows no handles open for the file.

Rob Linegar
Software Engineer
Data Encryption Systems Limited

-----Original Message-----
From: I?aki Castillo [mailto:xxxxx@pandasoftware.es]
Sent: 14 September 2000 19:45
To: File Systems Developers
Subject: [ntfsd] RE: Problems after preventing access to files

It seems you are leaving a handle open for the file.

Inaki.

> -----Original Message-----
> From: Rob Linegar
> Sent: jueves 14 de septiembre de 2000 18:10
> To: File Systems Developers
> Subject: [ntfsd] Problems after preventing access to files
>
> Hi all,
>
> I’m experiencing a problem after I want to stop denying
open access to
> files.
>
> I deny open access by doing the following in a worker routine during
> completion.
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> pContext->pOriginalIrp->IoStatus.Status = STATUS_ACCESS_DENIED;
> pContext->pOriginalIrp->IoStatus.Information = 0;
> IoCompleteRequest( pContext->pOriginalIrp, IO_NO_INCREMENT );
> ExFreePool( pContext );
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> The problem i’m experiencing is that once I stop blocking
open access to
> the
> file in question it can’t be deleted, rename or
overwritten, but it can be
> copied.
>
> Has anyone experienced this before?
>
> Best Regards,
>
> Rob Linegar
> Software Engineer
> Data Encryption Systems Limited
>
> —
> You are currently subscribed to ntfsd as: xxxxx@pandasoftware.es
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)


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

Perhaps you dont but the file system below you, is opening the file ?

For example, if your file filter allows CREATE to pass and then hooks the
result in the completion routine the file is actually open at this moment.

So if you deny access at this moment you will end with an open file.
You need to CLOSE the file before you complete the request in your
worker routine. To close it you need to call CLEANUP and CLOSE, one
after other. There is a function that does both under W2000.

Inaki.

-----Original Message-----
From: Rob Linegar
Sent: viernes 15 de septiembre de 2000 10:12
To: File Systems Developers
Subject: [ntfsd] RE: Problems after preventing access to files

Yes, I thought this at first, but I don’t actually open the file myself
anywhere.

All I did to reproduce the problem was set a flag from an ioctl and in the
worker check this flag, if the flag is set deny access to the specified
file.

HandleEx from sysinternals shows no handles open for the file.

Rob Linegar
Software Engineer
Data Encryption Systems Limited

> -----Original Message-----
> From: I?aki Castillo [mailto:xxxxx@pandasoftware.es]
> Sent: 14 September 2000 19:45
> To: File Systems Developers
> Subject: [ntfsd] RE: Problems after preventing access to files
>
>
> It seems you are leaving a handle open for the file.
>
> Inaki.
>
>
> > -----Original Message-----
> > From: Rob Linegar
> > Sent: jueves 14 de septiembre de 2000 18:10
> > To: File Systems Developers
> > Subject: [ntfsd] Problems after preventing access to files
> >
> > Hi all,
> >
> > I’m experiencing a problem after I want to stop denying
> open access to
> > files.
> >
> > I deny open access by doing the following in a worker routine during
> > completion.
> >
> > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> > pContext->pOriginalIrp->IoStatus.Status = STATUS_ACCESS_DENIED;
> > pContext->pOriginalIrp->IoStatus.Information = 0;
> > IoCompleteRequest( pContext->pOriginalIrp, IO_NO_INCREMENT );
> > ExFreePool( pContext );
> > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> >
> > The problem i’m experiencing is that once I stop blocking
> open access to
> > the
> > file in question it can’t be deleted, rename or
> overwritten, but it can be
> > copied.
> >
> > Has anyone experienced this before?
> >
> > Best Regards,
> >
> > Rob Linegar
> > Software Engineer
> > Data Encryption Systems Limited
> >
> > —
> > You are currently subscribed to ntfsd as: xxxxx@pandasoftware.es
> > To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>
> —
> You are currently subscribed to ntfsd as: xxxxx@des.co.uk
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>


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

Did you say you are completing the irp in a completion routine
(presumably after returning STATUS_MORE_PROCESSING_REQUIRED from your
completion routine then resuming on the ExWorker)? I may be
misunderstanding your original email, but if that is what you are doing, it
seems like a problematic approach as the FSD would have already opened the
file internally and then you are essentially lying to the io system. You
would have to send a cleanup and close irp to the FSD from your ExWorker
routine for this to work right (but again, I may just be misunderstanding
your approach). It seems like it would be easier to do the reject from your
create dispatch routine.

-----Original Message-----
From: Rob Linegar [mailto:xxxxx@des.co.uk]
Sent: Friday, September 15, 2000 4:12 AM
To: File Systems Developers
Subject: [ntfsd] RE: Problems after preventing access to files

Yes, I thought this at first, but I don’t actually open the file myself
anywhere.

All I did to reproduce the problem was set a flag from an ioctl and in the
worker check this flag, if the flag is set deny access to the specified
file.

HandleEx from sysinternals shows no handles open for the file.

Rob Linegar
Software Engineer
Data Encryption Systems Limited

-----Original Message-----
From: I?aki Castillo [mailto:xxxxx@pandasoftware.es]
Sent: 14 September 2000 19:45
To: File Systems Developers
Subject: [ntfsd] RE: Problems after preventing access to files

It seems you are leaving a handle open for the file.

Inaki.

> -----Original Message-----
> From: Rob Linegar
> Sent: jueves 14 de septiembre de 2000 18:10
> To: File Systems Developers
> Subject: [ntfsd] Problems after preventing access to files
>
> Hi all,
>
> I’m experiencing a problem after I want to stop denying
open access to
> files.
>
> I deny open access by doing the following in a worker routine during
> completion.
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> pContext->pOriginalIrp->IoStatus.Status = STATUS_ACCESS_DENIED;
> pContext->pOriginalIrp->IoStatus.Information = 0;
> IoCompleteRequest( pContext->pOriginalIrp, IO_NO_INCREMENT );
> ExFreePool( pContext );
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> The problem i’m experiencing is that once I stop blocking
open access to
> the
> file in question it can’t be deleted, rename or
overwritten, but it can be
> copied.
>
> Has anyone experienced this before?
>
> Best Regards,
>
> Rob Linegar
> Software Engineer
> Data Encryption Systems Limited
>
> —
> You are currently subscribed to ntfsd as: xxxxx@pandasoftware.es
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)


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


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