ntdll: Preserve the 2K block size returned for CDROMs.

This commit is contained in:
Alexandre Julliard 2008-10-06 17:52:23 +02:00
parent a1131786e4
commit 4d958a1cb3

View file

@ -2264,10 +2264,18 @@ NTSTATUS WINAPI NtQueryVolumeInformationFile( HANDLE handle, PIO_STATUS_BLOCK io
}
bsize = stfs.f_bsize;
#endif
info->BytesPerSector = 512;
info->SectorsPerAllocationUnit = 8;
info->TotalAllocationUnits.QuadPart = bsize * stfs.f_blocks / (512 * 8);
info->AvailableAllocationUnits.QuadPart = bsize * stfs.f_bavail / (512 * 8);
if (bsize == 2048) /* assume CD-ROM */
{
info->BytesPerSector = 2048;
info->SectorsPerAllocationUnit = 1;
}
else
{
info->BytesPerSector = 512;
info->SectorsPerAllocationUnit = 8;
}
info->TotalAllocationUnits.QuadPart = bsize * stfs.f_blocks / (info->BytesPerSector * info->SectorsPerAllocationUnit);
info->AvailableAllocationUnits.QuadPart = bsize * stfs.f_bavail / (info->BytesPerSector * info->SectorsPerAllocationUnit);
io->Information = sizeof(*info);
io->u.Status = STATUS_SUCCESS;
}