[CDFS] Implement open handle count

This commit is contained in:
Pierre Schweitzer
2017-11-04 21:14:50 +01:00
parent fa0327d6c5
commit 95447d2fd1
3 changed files with 8 additions and 0 deletions

View File

@@ -170,6 +170,9 @@ typedef struct
/* Notifications */
LIST_ENTRY NotifyList;
PNOTIFY_SYNC NotifySync;
/* Incremented on IRP_MJ_CREATE, decremented on IRP_MJ_CLEANUP */
ULONG OpenHandleCount;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION, VCB, *PVCB;

View File

@@ -55,6 +55,8 @@ CdfsCleanupFile(PCDFS_IRP_CONTEXT IrpContext,
return STATUS_SUCCESS;
}
DeviceExt->OpenHandleCount--;
/* Notify about the cleanup */
FsRtlNotifyCleanup(DeviceExt->NotifySync,
&(DeviceExt->NotifyList),

View File

@@ -241,6 +241,8 @@ CdfsCreateFile(PDEVICE_OBJECT DeviceObject,
CdfsCloseFile (DeviceExt, FileObject);
return STATUS_NOT_A_DIRECTORY;
}
DeviceExt->OpenHandleCount++;
}
/*
@@ -271,6 +273,7 @@ CdfsCreate(
/* DeviceObject represents FileSystem instead of logical volume */
DPRINT("Opening file system\n");
IrpContext->Irp->IoStatus.Information = FILE_OPENED;
DeviceExt->OpenHandleCount++;
return STATUS_SUCCESS;
}