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/vo... ============================================================================== --- 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: