sys: FSP_MJ_ENTER: top level irp functionality

This commit is contained in:
Bill Zissimopoulos 2016-03-02 17:19:54 -08:00
parent 9a751ff451
commit bb897872a1

View File

@ -131,11 +131,17 @@ extern __declspec(selectany) int fsp_bp = 1;
{ \
if (0 != fsp_top_level_irp) \
{ \
if (FSRTL_MAX_TOP_LEVEL_IRP_FLAG < (UINT_PTR)fsp_top_level_irp &&\
IO_TYPE_IRP == fsp_top_level_irp->Type)\
FspIrpSetTopFlags(Irp, FspIrpFlags(fsp_top_level_irp));\
else \
if (FSRTL_MAX_TOP_LEVEL_IRP_FLAG >= (UINT_PTR)fsp_top_level_irp)\
FspIrpSetTopFlags(Irp, FspFileNodeAcquireFull);\
else if (IO_TYPE_IRP == fsp_top_level_irp->Type &&\
0 != IrpSp->FileObject && FspFileNodeIsValid(IrpSp->FileObject->FsContext))\
{ \
PIO_STACK_LOCATION fsp_top_level_irpsp =\
IoGetCurrentIrpStackLocation(fsp_top_level_irp);\
if (0 != fsp_top_level_irpsp->FileObject &&\
IrpSp->FileObject->FsContext == fsp_top_level_irpsp->FileObject->FsContext)\
FspIrpSetTopFlags(Irp, FspIrpFlags(fsp_top_level_irp));\
} \
} \
IoSetTopLevelIrp(Irp); \
if (!FspDeviceReference(IrpSp->DeviceObject))\