ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

fmifs.h
Go to the documentation of this file.
00001 #ifndef _FMIFS_H
00002 #define _FMIFS_H
00003 /*
00004  * fmifs.h
00005  *
00006  * Copyright (c) 1998 Mark Russinovich
00007  * Systems Internals
00008  * http://www.sysinternals.com
00009  *
00010  * Typedefs and definitions for using chkdsk and formatex
00011  * functions exported by the fmifs.dll library.
00012  *
00013  * ---
00014  *
00015  * 1999-02-18 (Emanuele Aliberti)
00016  *  Normalized function names.
00017  *
00018  * ---
00019  *
00020  * 2006-09-04 (Hervé Poussineau)
00021  *  Add some prototypes
00022  *
00023  */
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif // __cplusplus
00028 
00029 /* Output command */
00030 typedef struct
00031 {
00032     ULONG Lines;
00033     PCHAR Output;
00034 } TEXTOUTPUT, *PTEXTOUTPUT;
00035 
00036 /* media flags */
00037 typedef enum
00038 {
00039     FMIFS_UNKNOWN0,
00040     FMIFS_UNKNOWN1,
00041     FMIFS_UNKNOWN2,
00042     FMIFS_UNKNOWN3,
00043     FMIFS_UNKNOWN4,
00044     FMIFS_UNKNOWN5,
00045     FMIFS_UNKNOWN6,
00046     FMIFS_UNKNOWN7,
00047     FMIFS_FLOPPY,
00048     FMIFS_UNKNOWN9,
00049     FMIFS_UNKNOWN10,
00050     FMIFS_REMOVABLE,
00051     FMIFS_HARDDISK,
00052     FMIFS_UNKNOWN13,
00053     FMIFS_UNKNOWN14,
00054     FMIFS_UNKNOWN15,
00055     FMIFS_UNKNOWN16,
00056     FMIFS_UNKNOWN17,
00057     FMIFS_UNKNOWN18,
00058     FMIFS_UNKNOWN19,
00059     FMIFS_UNKNOWN20,
00060     FMIFS_UNKNOWN21,
00061     FMIFS_UNKNOWN22,
00062     FMIFS_UNKNOWN23,
00063 } FMIFS_MEDIA_FLAG;
00064 
00065 /* Callback command types */
00066 typedef enum
00067 {
00068     PROGRESS,
00069     DONEWITHSTRUCTURE,
00070     UNKNOWN2,
00071     UNKNOWN3,
00072     UNKNOWN4,
00073     UNKNOWN5,
00074     INSUFFICIENTRIGHTS,
00075     FSNOTSUPPORTED,
00076     VOLUMEINUSE,
00077     UNKNOWN9,
00078     UNKNOWNA,
00079     DONE,
00080     UNKNOWNC,
00081     UNKNOWND,
00082     OUTPUT,
00083     STRUCTUREPROGRESS,
00084     CLUSTERSIZETOOSMALL,
00085 } CALLBACKCOMMAND;
00086 
00087 /* FMIFS callback definition */
00088 typedef BOOLEAN
00089 (NTAPI* PFMIFSCALLBACK)(
00090     IN CALLBACKCOMMAND Command,
00091     IN ULONG SubAction,
00092     IN PVOID ActionInfo);
00093 
00094 /* Chkdsk command in FMIFS */
00095 VOID NTAPI
00096 Chkdsk(
00097     IN PWCHAR DriveRoot,
00098     IN PWCHAR Format,
00099     IN BOOLEAN CorrectErrors,
00100     IN BOOLEAN Verbose,
00101     IN BOOLEAN CheckOnlyIfDirty,
00102     IN BOOLEAN ScanDrive,
00103     IN PVOID Unused2,
00104     IN PVOID Unused3,
00105     IN PFMIFSCALLBACK Callback);
00106 
00107 /* ChkdskEx command in FMIFS (not in the original) */
00108 VOID NTAPI
00109 ChkdskEx(
00110     IN PWCHAR DriveRoot,
00111     IN PWCHAR Format,
00112     IN BOOLEAN CorrectErrors,
00113     IN BOOLEAN Verbose,
00114     IN BOOLEAN CheckOnlyIfDirty,
00115     IN BOOLEAN ScanDrive,
00116     IN PVOID Unused2,
00117     IN PVOID Unused3,
00118     IN PFMIFSCALLBACK Callback);
00119 
00120 FMIFS_MEDIA_FLAG NTAPI
00121 ComputeFmMediaType(
00122     IN ULONG MediaType);
00123 
00124 /* DiskCopy command in FMIFS */
00125 VOID NTAPI
00126 DiskCopy(VOID);
00127 
00128 /* Enable/Disable volume compression */
00129 BOOLEAN NTAPI
00130 EnableVolumeCompression(
00131     IN PWCHAR DriveRoot,
00132     IN USHORT Compression);
00133 
00134 /* Format command in FMIFS */
00135 VOID NTAPI
00136 FormatEx(
00137     IN PWCHAR DriveRoot,
00138     IN FMIFS_MEDIA_FLAG MediaFlag,
00139     IN PWCHAR Format,
00140     IN PWCHAR Label,
00141     IN BOOLEAN QuickFormat,
00142     IN ULONG ClusterSize,
00143     IN PFMIFSCALLBACK Callback);
00144 
00145 BOOLEAN NTAPI
00146 QueryAvailableFileSystemFormat(
00147     IN DWORD Index,
00148     IN OUT PWCHAR FileSystem, /* FIXME: Probably one minimal size is mandatory, but which one? */
00149     OUT UCHAR* Major,
00150     OUT UCHAR* Minor,
00151     OUT BOOLEAN* LastestVersion);
00152 
00153 BOOL NTAPI
00154 QueryDeviceInformation(
00155     IN PWCHAR DriveRoot,
00156     OUT ULONG* Buffer, /* That is probably some 4-bytes structure */
00157     IN ULONG BufferSize); /* 4 */
00158 
00159 BOOL NTAPI
00160 QueryFileSystemName(
00161     IN PWCHAR DriveRoot,
00162     OUT PWCHAR FileSystem OPTIONAL, /* FIXME: Probably one minimal size is mandatory, but which one? */
00163     OUT UCHAR* Unknown2 OPTIONAL, /* Always 0? */
00164     OUT UCHAR* Unknown3 OPTIONAL, /* Always 0? */
00165     OUT ULONG* Unknown4 OPTIONAL); /* Always 0? */
00166 
00167 BOOLEAN NTAPI
00168 QueryLatestFileSystemVersion(
00169     IN PWCHAR FileSystem,
00170     OUT UCHAR* Major OPTIONAL,
00171     OUT UCHAR* Minor OPTIONAL);
00172 
00173 BOOL NTAPI
00174 QuerySupportedMedia(
00175     IN PWCHAR DriveRoot,
00176     OUT FMIFS_MEDIA_FLAG *CurrentMedia OPTIONAL,
00177     IN ULONG Unknown3,
00178     OUT PULONG Unknown4); /* Always 1? */
00179 
00180 BOOL NTAPI
00181 SetLabel(
00182     IN PWCHAR DriveRoot,
00183     IN PWCHAR Label);
00184 
00185 /* Functions provided by u*.dll */
00186 
00187 typedef NTSTATUS
00188 (NTAPI *FORMATEX)(
00189     IN PUNICODE_STRING DriveRoot,
00190     IN FMIFS_MEDIA_FLAG MediaFlag,
00191     IN PUNICODE_STRING Label,
00192     IN BOOLEAN QuickFormat,
00193     IN ULONG ClusterSize,
00194     IN PFMIFSCALLBACK Callback);
00195 
00196 typedef NTSTATUS
00197 (NTAPI *CHKDSKEX)(
00198     IN PUNICODE_STRING DriveRoot,
00199     IN BOOLEAN FixErrors,
00200     IN BOOLEAN Verbose,
00201     IN BOOLEAN CheckOnlyIfDirty,
00202     IN BOOLEAN ScanDrive,
00203     IN PFMIFSCALLBACK Callback);
00204 
00205 #ifdef __cplusplus
00206 }
00207 #endif // __cplusplus
00208 
00209 #endif /* ndef _FMIFS_H */

Generated on Mon May 28 2012 04:32:56 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.