Author: ekohl
Date: Tue Jun 2 12:37:37 2015
New Revision: 67999
URL:
http://svn.reactos.org/svn/reactos?rev=67999&view=rev
Log:
[CDFS]
Add IRP_MJ_QUERY_VOLUME_INFORMATION.FileFsFullSizeInformation to CDFS too.
Modified:
trunk/reactos/drivers/filesystems/cdfs/volinfo.c
Modified: trunk/reactos/drivers/filesystems/cdfs/volinfo.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/cdfs/v…
==============================================================================
--- trunk/reactos/drivers/filesystems/cdfs/volinfo.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/cdfs/volinfo.c [iso-8859-1] Tue Jun 2 12:37:37
2015
@@ -171,6 +171,38 @@
}
+static
+NTSTATUS
+CdfsGetFsFullSizeInformation(
+ PDEVICE_OBJECT DeviceObject,
+ PFILE_FS_FULL_SIZE_INFORMATION FsSizeInfo,
+ PULONG BufferLength)
+{
+ PDEVICE_EXTENSION DeviceExt;
+ NTSTATUS Status;
+
+ DPRINT("CdfsGetFsFullSizeInformation()\n");
+ DPRINT("FsSizeInfo = %p\n", FsSizeInfo);
+
+ if (*BufferLength < sizeof(FILE_FS_FULL_SIZE_INFORMATION))
+ return STATUS_BUFFER_OVERFLOW;
+
+ DeviceExt = DeviceObject->DeviceExtension;
+
+ FsSizeInfo->TotalAllocationUnits.QuadPart = DeviceExt->CdInfo.VolumeSpaceSize;
+ FsSizeInfo->CallerAvailableAllocationUnits.QuadPart = 0;
+ FsSizeInfo->ActualAvailableAllocationUnits.QuadPart = 0;
+ FsSizeInfo->SectorsPerAllocationUnit = 1;
+ FsSizeInfo->BytesPerSector = BLOCKSIZE;
+
+ DPRINT("Finished CdfsGetFsFullSizeInformation()\n");
+ if (NT_SUCCESS(Status))
+ *BufferLength -= sizeof(FILE_FS_FULL_SIZE_INFORMATION);
+
+ return Status;
+}
+
+
NTSTATUS
NTAPI
CdfsQueryVolumeInformation(
@@ -216,12 +248,18 @@
Status = CdfsGetFsSizeInformation(DeviceObject,
SystemBuffer,
&BufferLength);
- break;
+ break;
case FileFsDeviceInformation:
Status = CdfsGetFsDeviceInformation(DeviceObject,
SystemBuffer,
&BufferLength);
+ break;
+
+ case FileFsFullSizeInformation:
+ Status = CdfsGetFsFullSizeInformation(DeviceObject,
+ SystemBuffer,
+ &BufferLength);
break;
default: