xref: /reactos/sdk/lib/fslib/vfatxlib/vfatxlib.h (revision c2c66aff)
1 /*
2  * COPYRIGHT:   See COPYING in the top level directory
3  * PROJECT:     ReactOS VFAT filesystem library
4  * FILE:        vfatxlib.h
5  */
6 
7 #ifndef _VFATXLIB_H_
8 #define _VFATXLIB_H_
9 
10 #define NTOS_MODE_USER
11 #include <ndk/umtypes.h>
12 #include <ndk/pstypes.h>
13 #include <ndk/ldrtypes.h>
14 #include <ndk/iofuncs.h>
15 #include <fmifs/fmifs.h>
16 
17 #include <pshpack1.h>
18 typedef struct _FATX_BOOT_SECTOR
19 {
20    unsigned char SysType[4];        // 0
21    unsigned long VolumeID;          // 4
22    unsigned long SectorsPerCluster; // 8
23    unsigned short FATCount;         // 12
24    unsigned long Unknown;           // 14
25    unsigned char Unused[4078];      // 18
26 } FATX_BOOT_SECTOR, *PFATX_BOOT_SECTOR;
27 #include <poppack.h>
28 
29 typedef struct _FORMAT_CONTEXT
30 {
31   PFMIFSCALLBACK Callback;
32   ULONG TotalSectorCount;
33   ULONG CurrentSectorCount;
34   BOOLEAN Success;
35   ULONG Percent;
36 } FORMAT_CONTEXT, *PFORMAT_CONTEXT;
37 
38 
39 
40 NTSTATUS
41 FatxFormat (HANDLE FileHandle,
42 	    PPARTITION_INFORMATION PartitionInfo,
43 	    PDISK_GEOMETRY DiskGeometry,
44 	    BOOLEAN QuickFormat,
45 	    PFORMAT_CONTEXT Context);
46 
47 VOID
48 VfatxUpdateProgress (PFORMAT_CONTEXT Context,
49 		     ULONG Increment);
50 
51 #endif /* _VFATXLIB_H_ */
52 
53 /* EOF */
54