diff --git a/src/sys/callbacks.c b/src/sys/callbacks.c index c178e37c..8d9dfa02 100644 --- a/src/sys/callbacks.c +++ b/src/sys/callbacks.c @@ -324,7 +324,9 @@ VOID FspPropagateTopFlags(PIRP Irp, PIRP TopLevelIrp) FspFileNodeAcquireMain : FspFileNodeAcquireFull); } - else if ((PIRP)MM_SYSTEM_RANGE_START <= TopLevelIrp && IO_TYPE_IRP == TopLevelIrp->Type) + else if ((PIRP)MM_SYSTEM_RANGE_START <= TopLevelIrp && + IO_TYPE_IRP == TopLevelIrp->Type && + TopLevelIrp->CurrentLocation <= TopLevelIrp->StackCount) { PFILE_OBJECT FileObject = IoGetCurrentIrpStackLocation(Irp)->FileObject; PFILE_OBJECT TopLevelFileObject = IoGetCurrentIrpStackLocation(TopLevelIrp)->FileObject;