[CDFS] Implement open handle count

This commit is contained in:
Pierre Schweitzer 2017-11-04 21:14:50 +01:00
parent fa0327d6c5
commit 95447d2fd1
No known key found for this signature in database
GPG key ID: 7545556C3D585B0B
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;
}