:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / include / fmifs.h
1 #ifndef _FMIFS_H
2 #define _FMIFS_H
3 /* $Id$
4  *
5  * fmifs.h
6  *
7  * Copyright (c) 1998 Mark Russinovich
8  * Systems Internals
9  * http://www.sysinternals.com
10  *
11  * Typedefs and definitions for using chkdsk and formatex
12  * functions exported by the fmifs.dll library.
13  *
14  * ---
15  *
16  * 1999-02-18 (Emanuele Aliberti)
17  *      Normalized function names.
18  *
19  */
20 #ifndef _INC_WINDOWS_
21 #include <windows.h>
22 #endif
23
24 /* Output command */
25 typedef
26 struct
27 {
28         DWORD Lines;
29         PCHAR Output;
30         
31 } TEXTOUTPUT, *PTEXTOUTPUT;
32
33
34 /* Callback command types */
35 typedef
36 enum
37 {
38         PROGRESS,
39         DONEWITHSTRUCTURE,
40         UNKNOWN2,
41         UNKNOWN3,
42         UNKNOWN4,
43         UNKNOWN5,
44         INSUFFICIENTRIGHTS,
45         UNKNOWN7,
46         UNKNOWN8,
47         UNKNOWN9,
48         UNKNOWNA,
49         DONE,
50         UNKNOWNC,
51         UNKNOWND,
52         OUTPUT,
53         STRUCTUREPROGRESS
54
55 } CALLBACKCOMMAND;
56
57
58 /* FMIFS callback definition */
59 typedef
60 BOOL
61 (STDCALL * PFMIFSCALLBACK) (
62         CALLBACKCOMMAND Command,
63         DWORD           SubAction,
64         PVOID           ActionInfo
65         );
66
67 /* Chkdsk command in FMIFS */
68 VOID
69 STDCALL
70 Chkdsk(
71         PWCHAR          DriveRoot, 
72         PWCHAR          Format,
73         BOOL            CorrectErrors, 
74         BOOL            Verbose, 
75         BOOL            CheckOnlyIfDirty,
76         BOOL            ScanDrive, 
77         PVOID           Unused2, 
78         PVOID           Unused3,
79         PFMIFSCALLBACK  Callback
80         );
81
82 /* ChkdskEx command in FMIFS (not in the original) */
83 VOID
84 STDCALL
85 ChkDskEx(
86         PWCHAR          DriveRoot, 
87         PWCHAR          Format,
88         BOOL            CorrectErrors, 
89         BOOL            Verbose, 
90         BOOL            CheckOnlyIfDirty,
91         BOOL            ScanDrive, 
92         PVOID           Unused2, 
93         PVOID           Unused3,
94         PFMIFSCALLBACK  Callback
95         );
96
97 /* DiskCopy command in FMIFS */
98
99 VOID
100 STDCALL
101 DiskCopy(VOID);
102
103 /* Enable/Disable volume compression */
104 BOOL
105 STDCALL
106 EnableVolumeCompression(
107         PWCHAR  DriveRoot,
108         BOOL    Enable
109         );
110
111 /* Format command in FMIFS */
112
113 /* media flags */
114 #define FMIFS_HARDDISK 0xC
115 #define FMIFS_FLOPPY   0x8
116
117 VOID
118 STDCALL
119 FormatEx(
120         PWCHAR          DriveRoot,
121         DWORD           MediaFlag,
122         PWCHAR          Format,
123         PWCHAR          Label,
124         BOOL            QuickFormat,
125         DWORD           ClusterSize,
126         PFMIFSCALLBACK  Callback
127         );
128
129 #endif /* ndef _FMIFS_H */