mirror of
https://github.com/winfsp/winfsp.git
synced 2026-06-17 10:06:02 -05:00
a482183149
Add a check to verify that the TopLevelIrp has not been completed. This became necessary because on recent Windows kernels, IRP's can have "IRP extensions", which are freed when an IRP is completed. This can trigger a recursive CLOSE with a top-level IRP that has been completed, which can bugcheck the system. Case in point: the new (Win11) NtCopyFileChunk creates IRP's with COPY_INFORMATION attached. Upon completion of such an IRP the SourceFileObject is freed, which results in a recursive IRP_MJ_CLOSE with a completed top-level IRP, which would lead to a BSOD.