6 * Copyright (c) 1998 Mark Russinovich
8 * http://www.sysinternals.com
10 * Typedefs and definitions for using chkdsk and formatex
11 * functions exported by the fmifs.dll library.
15 * 1999-02-18 (Emanuele Aliberti)
16 * Normalized function names.
20 * 2006-09-04 (Hervé Poussineau)
34 } TEXTOUTPUT
, *PTEXTOUTPUT
;
65 /* Callback command types */
87 /* FMIFS callback definition */
89 (NTAPI
* PFMIFSCALLBACK
)(
90 IN CALLBACKCOMMAND Command
,
94 /* Chkdsk command in FMIFS */
99 IN BOOLEAN CorrectErrors
,
101 IN BOOLEAN CheckOnlyIfDirty
,
102 IN BOOLEAN ScanDrive
,
105 IN PFMIFSCALLBACK Callback
);
107 /* ChkdskEx command in FMIFS (not in the original) */
112 IN BOOLEAN CorrectErrors
,
114 IN BOOLEAN CheckOnlyIfDirty
,
115 IN BOOLEAN ScanDrive
,
118 IN PFMIFSCALLBACK Callback
);
120 FMIFS_MEDIA_FLAG NTAPI
124 /* DiskCopy command in FMIFS */
128 /* Enable/Disable volume compression */
130 EnableVolumeCompression(
132 IN USHORT Compression
);
134 /* Format command in FMIFS */
138 IN FMIFS_MEDIA_FLAG MediaFlag
,
141 IN BOOLEAN QuickFormat
,
142 IN PFMIFSCALLBACK Callback
);
144 /* FormatEx command in FMIFS */
148 IN FMIFS_MEDIA_FLAG MediaFlag
,
151 IN BOOLEAN QuickFormat
,
152 IN ULONG ClusterSize
,
153 IN PFMIFSCALLBACK Callback
);
156 QueryAvailableFileSystemFormat(
158 IN OUT PWCHAR FileSystem
, /* FIXME: Probably one minimal size is mandatory, but which one? */
161 OUT BOOLEAN
* LatestVersion
);
164 QueryDeviceInformation(
166 OUT ULONG
* Buffer
, /* That is probably some 4-bytes structure */
167 IN ULONG BufferSize
); /* 4 */
172 OUT PWCHAR FileSystem OPTIONAL
, /* FIXME: Probably one minimal size is mandatory, but which one? */
173 OUT UCHAR
* Unknown2 OPTIONAL
, /* Always 0? */
174 OUT UCHAR
* Unknown3 OPTIONAL
, /* Always 0? */
175 OUT ULONG
* Unknown4 OPTIONAL
); /* Always 0? */
178 QueryLatestFileSystemVersion(
179 IN PWCHAR FileSystem
,
180 OUT UCHAR
* Major OPTIONAL
,
181 OUT UCHAR
* Minor OPTIONAL
);
186 OUT FMIFS_MEDIA_FLAG
*CurrentMedia OPTIONAL
,
188 OUT PULONG Unknown4
); /* Always 1? */
195 /* Functions provided by u*.dll */
199 IN PUNICODE_STRING DriveRoot
,
200 IN FMIFS_MEDIA_FLAG MediaFlag
,
201 IN PUNICODE_STRING Label
,
202 IN BOOLEAN QuickFormat
,
203 IN ULONG ClusterSize
,
204 IN PFMIFSCALLBACK Callback
);
208 IN PUNICODE_STRING DriveRoot
,
209 IN BOOLEAN FixErrors
,
211 IN BOOLEAN CheckOnlyIfDirty
,
212 IN BOOLEAN ScanDrive
,
213 IN PFMIFSCALLBACK Callback
);
217 #endif // __cplusplus
219 #endif /* ndef _FMIFS_H */