[FASTFAT]
authorPierre Schweitzer <pierre@reactos.org>
Fri, 15 May 2015 16:03:29 +0000 (16:03 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Fri, 15 May 2015 16:03:29 +0000 (16:03 +0000)
commit3b6a55716fc711b4f5299379896870bf1bf1f381
tree4d413c7edcf4b6f87f0014b14fd0de379c18200d
parent45e50d10a04d1a21c75fbc5411256a5220e719c1
[FASTFAT]
Bring in initiated work on IRPs in NTFS (and complete it).
This simplifies the way IRPs and their context are handled in the driver.
Only VfatDispatchRequest() is responsible of completing IRPs (if required), freeing the IRP context (if required), and queueing the IRP for later completion (if required).
This allows removing duplicated code, hacks, and so on. It might help reducing IRP leaks, or memory leaks.

By default, VfatDispatchRequest() will complete the IRP and delete the IRP context.
In case you don't want it to complete the IRP (because you passed it down, for instance), remove the IRPCONTEXT_COMPLETE flag. See for instance: VfatDeviceControl().
In case you want to queue the IRP (you previously called: VfatQueueRequest()), call the newly introduced VfatMarkIrpContextForQueue() function that will prepare it.

svn path=/trunk/; revision=67743
12 files changed:
reactos/drivers/filesystems/fastfat/cleanup.c
reactos/drivers/filesystems/fastfat/close.c
reactos/drivers/filesystems/fastfat/create.c
reactos/drivers/filesystems/fastfat/dir.c
reactos/drivers/filesystems/fastfat/finfo.c
reactos/drivers/filesystems/fastfat/flush.c
reactos/drivers/filesystems/fastfat/fsctl.c
reactos/drivers/filesystems/fastfat/misc.c
reactos/drivers/filesystems/fastfat/pnp.c
reactos/drivers/filesystems/fastfat/rw.c
reactos/drivers/filesystems/fastfat/vfat.h
reactos/drivers/filesystems/fastfat/volume.c