mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-24 09:23:37 -05:00
sys: FSP_MJ_ENTER: top level irp functionality
This commit is contained in:
parent
9a751ff451
commit
bb897872a1
@ -131,11 +131,17 @@ extern __declspec(selectany) int fsp_bp = 1;
|
|||||||
{ \
|
{ \
|
||||||
if (0 != fsp_top_level_irp) \
|
if (0 != fsp_top_level_irp) \
|
||||||
{ \
|
{ \
|
||||||
if (FSRTL_MAX_TOP_LEVEL_IRP_FLAG < (UINT_PTR)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 \
|
|
||||||
FspIrpSetTopFlags(Irp, FspFileNodeAcquireFull);\
|
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); \
|
IoSetTopLevelIrp(Irp); \
|
||||||
if (!FspDeviceReference(IrpSp->DeviceObject))\
|
if (!FspDeviceReference(IrpSp->DeviceObject))\
|
||||||
|
Loading…
x
Reference in New Issue
Block a user