Hello,
I have some troubles with my filter.
Its main idea is to emulate the existance
of a directory with subdirs and files.
It hooks the IRP calls to these files and
dirs and process them without calling the
lower driver.
Some file IO functions from
applications are operated correctly -
MJ_CREATE, CLOSE, CLEANUP, QUERY_INFORMATION,
but READ and DIRECTORY_CONTROL sometimes
return error values, though in the log
I see, that filter completed these IRPs.
I need the information on these topics:
I) The return values in Irp->IoStatus for
IRP_MJ_READ in the cases of
- Parameters.Read.Offset > (File length)
(I suppose STATUS_END_OF_FILE and
Information=0); - (Parameters.Read.Offset +
Parameters.Read.Length) > (File length)
(I set STATUS_END_OF_FILE and Info=
(File length)-Parameters.Read.Offset) - All OK - no read after EOF -
STATUS_SUCCESS and Parameters.Read.Length
II) return values for DIRECTORY_CONTROL
I set the STATUS_SUCCESS and Inforamation=
(QUERY_DIRECTORY)Parameters.Length
III) How can I determine, which buffer to use,
when my filterrr receive the IRP:
AssociatedIrp->SystemBuffer or from MdlAddress
Do not reference me to any Kits and books. I have
only DDK and its impossible for me to buy IFSKit.
Sincerely Yours,
Andrew