PDEVICE_EXTENSION DeviceExt;
PFCB Fcb;
- DPRINT("CdfsCleanupFile(DeviceExt %p, FileObject %p)\n",
- DeviceExt,
+ DPRINT("CdfsCleanupFile(IrpContext %p, FileObject %p)\n",
+ IrpContext,
FileObject);
DeviceExt = IrpContext->DeviceObject->DeviceExtension;
return STATUS_SUCCESS;
}
+ DeviceExt->OpenHandleCount--;
+
/* Notify about the cleanup */
FsRtlNotifyCleanup(DeviceExt->NotifySync,
&(DeviceExt->NotifyList),
CcUninitializeCacheMap (FileObject, NULL, NULL);
}
+ /* Inform cleanup is complete */
+ FileObject->Flags |= FO_CLEANUP_COMPLETE;
+
return STATUS_SUCCESS;
}
DeviceObject = IrpContext->DeviceObject;
Stack = IrpContext->Stack;
- if (DeviceObject == CdfsGlobalData->DeviceObject)
+ if (DeviceObject == CdfsGlobalData->CdFsDeviceObject || DeviceObject == CdfsGlobalData->HddFsDeviceObject)
{
DPRINT("Closing file system\n");
Status = STATUS_SUCCESS;