[NTFS]
authorPierre Schweitzer <pierre@reactos.org>
Thu, 25 Sep 2014 06:36:14 +0000 (06:36 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Thu, 25 Sep 2014 06:36:14 +0000 (06:36 +0000)
Compute index record size on mount and save it.

svn path=/trunk/; revision=64265

reactos/drivers/filesystems/ntfs/fsctl.c
reactos/drivers/filesystems/ntfs/ntfs.h

index e3e20f0..8235678 100644 (file)
@@ -232,6 +232,10 @@ NtfsGetVolumeData(PDEVICE_OBJECT DeviceObject,
         NtfsInfo->BytesPerFileRecord = BootSector->EBPB.ClustersPerMftRecord * NtfsInfo->BytesPerCluster;
     else
         NtfsInfo->BytesPerFileRecord = 1 << (-BootSector->EBPB.ClustersPerMftRecord);
+    if (BootSector->EBPB.ClustersPerIndexRecord > 0)
+        NtfsInfo->BytesPerIndexRecord = BootSector->EBPB.ClustersPerIndexRecord * NtfsInfo->BytesPerCluster;
+    else
+        NtfsInfo->BytesPerIndexRecord = 1 << (-BootSector->EBPB.ClustersPerIndexRecord);
 
     DPRINT("Boot sector information:\n");
     DPRINT("  BytesPerSector:         %hu\n", BootSector->BPB.BytesPerSector);
index 3782c01..c21a0a1 100644 (file)
@@ -63,6 +63,7 @@ typedef struct _NTFS_INFO
     ULARGE_INTEGER MftStart;
     ULARGE_INTEGER MftMirrStart;
     ULONG BytesPerFileRecord;
+    ULONG BytesPerIndexRecord;
 
     ULONGLONG SerialNumber;
     USHORT VolumeLabelLength;