if (pFcb->Flags & FCB_IS_VOLUME)
{
pFcb->OpenHandleCount--;
- DeviceExt->OpenHandleCount--;
if (pFcb->OpenHandleCount != 0)
{
pFcb->FileObject = NULL;
CcUninitializeCacheMap(tmpFileObject, NULL, NULL);
ObDereferenceObject(tmpFileObject);
- vfatReleaseFCB(IrpContext->DeviceExt, pFcb);
}
CcPurgeCacheSection(FileObject->SectionObjectPointer, NULL, 0, FALSE);
ExReleaseResourceLite(&pFcb->MainResource);
}
+ if (DeviceExt->Flags & VCB_DISMOUNT_PENDING)
+ {
+ VfatCheckForDismount(DeviceExt, FALSE);
+ }
+
return STATUS_SUCCESS;
}