- 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