[FASTFAT]
[reactos.git] / reactos / drivers / filesystems / fastfat / vfat.h
index bc6ac51..941f9d7 100644 (file)
@@ -6,6 +6,12 @@
 #include <dos.h>
 #include <pseh/pseh2.h>
 
+#ifdef __GNUC__
+#define INIT_SECTION __attribute__((section ("INIT")))
+#else
+#define INIT_SECTION /* Done via alloc_text for MSC */
+#endif
+
 #define USE_ROS_CC_AND_FS
 #if 0
 #ifndef _MSC_VER
@@ -256,8 +262,6 @@ typedef struct _HASHENTRY
 }
 HASHENTRY;
 
-#define FCB_HASH_TABLE_SIZE 65536
-
 typedef struct DEVICE_EXTENSION *PDEVICE_EXTENSION;
 
 typedef NTSTATUS (*PGET_NEXT_CLUSTER)(PDEVICE_EXTENSION,ULONG,PULONG);
@@ -311,6 +315,8 @@ typedef struct DEVICE_EXTENSION
     PVPB SpareVPB;
 } DEVICE_EXTENSION, VCB, *PVCB;
 
+#define VFAT_BREAK_ON_CORRUPTION 1
+
 typedef struct
 {
     PDRIVER_OBJECT DriverObject;
@@ -482,6 +488,7 @@ typedef struct _VFAT_MOVE_CONTEXT
     ULONG FileSize;
     USHORT CreationDate;
     USHORT CreationTime;
+    BOOLEAN InPlace;
 } VFAT_MOVE_CONTEXT, *PVFAT_MOVE_CONTEXT;
 
 FORCEINLINE
@@ -802,8 +809,7 @@ NTSTATUS
 vfatUpdateFCB(
     PDEVICE_EXTENSION pVCB,
     PVFATFCB Fcb,
-    PUNICODE_STRING LongName,
-    PUNICODE_STRING ShortName,
+    PVFAT_DIRENTRY_CONTEXT DirContext,
     PVFATFCB ParentFcb);
 
 VOID
@@ -874,6 +880,20 @@ vfatMakeFCBFromDirEntry(
 
 /* finfo.c */
 
+NTSTATUS
+VfatGetStandardInformation(
+    PVFATFCB FCB,
+    PFILE_STANDARD_INFORMATION StandardInfo,
+    PULONG BufferLength);
+
+NTSTATUS
+VfatGetBasicInformation(
+    PFILE_OBJECT FileObject,
+    PVFATFCB FCB,
+    PDEVICE_OBJECT DeviceObject,
+    PFILE_BASIC_INFORMATION BasicInfo,
+    PULONG BufferLength);
+
 NTSTATUS
 VfatQueryInformation(
     PVFAT_IRP_CONTEXT IrpContext);