- Make NTFS compile on msvc.
Modified: trunk/reactos/drivers/fs/ntfs/mft.c
Modified: trunk/reactos/drivers/fs/ntfs/ntfs.h
Modified: trunk/reactos/drivers/fs/ntfs/volinfo.c

Modified: trunk/reactos/drivers/fs/ntfs/mft.c
--- trunk/reactos/drivers/fs/ntfs/mft.c	2006-01-07 05:59:22 UTC (rev 20650)
+++ trunk/reactos/drivers/fs/ntfs/mft.c	2006-01-07 06:20:59 UTC (rev 20651)
@@ -169,6 +169,7 @@
 	       PDEVICE_EXTENSION Vcb,
 	       PDEVICE_OBJECT DeviceObject)
 {
+  PNONRESIDENT_ATTRIBUTE NresAttr = (PNONRESIDENT_ATTRIBUTE)attr;
   if (attr->Nonresident == FALSE)
     {
 	memcpy (buffer,
@@ -176,7 +177,6 @@
 		((PRESIDENT_ATTRIBUTE)attr)->ValueLength);
     }
 
-  PNONRESIDENT_ATTRIBUTE NresAttr = (PNONRESIDENT_ATTRIBUTE)attr;
   ReadExternalAttribute(Vcb, NresAttr, 0, (ULONG)(NresAttr->LastVcn) + 1,
 		buffer);
 }
@@ -194,17 +194,14 @@
   PVOID p;
   ULONG BytesPerFileRecord = Vcb->NtfsInfo.BytesPerFileRecord;
   ULONG clusters = max(BytesPerFileRecord / Vcb->NtfsInfo.BytesPerCluster, 1);
-
-  p = ExAllocatePool(NonPagedPool, clusters * Vcb->NtfsInfo.BytesPerCluster);
-
   ULONGLONG vcn = index * BytesPerFileRecord / Vcb->NtfsInfo.BytesPerCluster;
-
-  ReadVCN (Vcb, Mft, AttributeData, vcn, clusters, p);
-
   LONG m = (Vcb->NtfsInfo.BytesPerCluster / BytesPerFileRecord) - 1;
-
   ULONG n = m > 0 ? (index & m) : 0;
+  
+  p = ExAllocatePool(NonPagedPool, clusters * Vcb->NtfsInfo.BytesPerCluster);
 
+  ReadVCN (Vcb, Mft, AttributeData, vcn, clusters, p);
+
   memcpy(file, (PVOID)((ULONG_PTR)p + n * BytesPerFileRecord), BytesPerFileRecord);
 
   ExFreePool(p);
@@ -227,6 +224,7 @@
   ULONGLONG runcount;
   ULONG readcount;
   ULONG left;
+  ULONG n;
 
     PUCHAR bytes = (PUCHAR)buffer;
 
@@ -238,7 +236,7 @@
 		readcount = (ULONG)min (runcount, left);
 
 
-		ULONG n = readcount * Vcb->NtfsInfo.BytesPerCluster;
+		n = readcount * Vcb->NtfsInfo.BytesPerCluster;
 
 		if (lcn == 0)
 			memset(bytes, 0, n);

Modified: trunk/reactos/drivers/fs/ntfs/ntfs.h
--- trunk/reactos/drivers/fs/ntfs/ntfs.h	2006-01-07 05:59:22 UTC (rev 20650)
+++ trunk/reactos/drivers/fs/ntfs/ntfs.h	2006-01-07 06:20:59 UTC (rev 20651)
@@ -1,8 +1,8 @@
 #ifndef NTFS_H
 #define NTFS_H
 
+#include <ntifs.h>
 #include <ntddk.h>
-#include <ntifs.h>
 #include <ntdddisk.h>
 #include <ccros.h>
 
@@ -10,8 +10,8 @@
 
 
 #define CACHEPAGESIZE(pDeviceExt) \
-	((pDeviceExt)->NtfsInfo.BytesPerCluster > PAGE_SIZE ? \
-	 (pDeviceExt)->NtfsInfo.BytesPerCluster : PAGE_SIZE)
+	((pDeviceExt)->NtfsInfo.UCHARsPerCluster > PAGE_SIZE ? \
+	 (pDeviceExt)->NtfsInfo.UCHARsPerCluster : PAGE_SIZE)
 
 #ifndef TAG
 #define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
@@ -19,7 +19,7 @@
 
 #define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
 
-
+#include <pshpack1.h>
 typedef struct _BOOT_SECTOR
 {
   UCHAR     Magic[3];				// 0x00
@@ -37,12 +37,13 @@
   ULONGLONG MftLocation;
   ULONGLONG MftMirrLocation;
   CHAR      ClustersPerMftRecord;
-  BYTE      Unused3[3];
+  UCHAR      Unused3[3];
   CHAR      ClustersPerIndexRecord;
-  BYTE      Unused4[3];
+  UCHAR      Unused4[3];
   ULONGLONG SerialNumber;			// 0x48
   UCHAR     BootCode[432];			// 0x50
-} __attribute__((packed)) BOOT_SECTOR, *PBOOT_SECTOR;
+} BOOT_SECTOR, *PBOOT_SECTOR;
+#include <poppack.h>
 
 //typedef struct _BootSector BootSector;
 
@@ -91,6 +92,7 @@
 #define FCB_CACHE_INITIALIZED   0x0001
 #define FCB_IS_VOLUME_STREAM    0x0002
 #define FCB_IS_VOLUME           0x0004
+#define MAX_PATH                260
 
 typedef struct _FCB
 {
@@ -187,7 +189,7 @@
   ULONG BytesAllocated;         /* Allocated size of the FILE record */
   ULONGLONG BaseFileRecord;     /* File reference to the base FILE record */
   USHORT NextAttributeNumber;   /* Next Attribute Id */
-  USHORT Pading;                /* Align to 4 byte boundary (XP) */
+  USHORT Pading;                /* Align to 4 UCHAR boundary (XP) */
   ULONG MFTRecordNumber;        /* Number of this MFT Record (XP) */
 } FILE_RECORD_HEADER, *PFILE_RECORD_HEADER;
 

Modified: trunk/reactos/drivers/fs/ntfs/volinfo.c
--- trunk/reactos/drivers/fs/ntfs/volinfo.c	2006-01-07 05:59:22 UTC (rev 20650)
+++ trunk/reactos/drivers/fs/ntfs/volinfo.c	2006-01-07 06:20:59 UTC (rev 20651)
@@ -27,14 +27,11 @@
 
 /* INCLUDES *****************************************************************/
 
-#include <ntddk.h>
+#include "ntfs.h"
 
 #define NDEBUG
 #include <debug.h>
 
-#include "ntfs.h"
-
-
 /* FUNCTIONS ****************************************************************/
 
 static NTSTATUS