Filter Driver - lower read and writes

When we receive an IRP_MJ_CREATE we want to open the requested file to check
our access rights which are stored in a separate file stream. To do this we
generate an IRP_MJ_CREATE to redirector, (the files are on a network file)
followed by a IRP_MJ_READ or IRP_MJ_WRITE, then finally we generate an
IRP_MJ_CLOSE.

These are all sent using copies of the file object passed in the original
IRP_MJ_CREATE request and a locally generated IRP. The CREATE and CLOSE are
always successful but the read and write work sometimes depending on the way
the CREATE IRP and File object are initialised.

How should we initialise the IRP and File Object in our IRP_MJ_CREATE so that
our local read and write IRP’s are always successful?

It seems as if the first request fails, but afterwards the following requests
seem to work. This will be to late for us to restrict access to the file.

Stephan Boome - Software Developer
BAE SYSTEMS, Christchurch, Dorset, BH23 4JE.
* Tel: (+44) 1202 404286
* Fax: (+44) 1202 408742
* Email: mailto:xxxxx@baesystems.com