Add prototypes for some fmifs.dll functions.

These have been found with trial and error on a MS Windows XP SP2 system with MS Visual Studio 2003

svn path=/trunk/; revision=23913
This commit is contained in:
Hervé Poussineau 2006-09-04 16:46:13 +00:00
parent e094312326
commit 4ba3312a81
3 changed files with 106 additions and 72 deletions

View file

@ -31,11 +31,4 @@ Chkdsk (PWCHAR DriveRoot,
&Argument); /* Argument */ &Argument); /* Argument */
} }
/* FMIFS.2 (SP4 only?) */
VOID STDCALL
ChkdskEx (VOID)
{
}
/* EOF */ /* EOF */

View file

@ -14,7 +14,7 @@
/* /*
* @implemented * @implemented
*/ */
BOOL STDCALL BOOLEAN STDCALL
EnableVolumeCompression (PWCHAR DriveRoot, EnableVolumeCompression (PWCHAR DriveRoot,
USHORT Compression) USHORT Compression)
{ {

View file

@ -1,7 +1,6 @@
#ifndef _FMIFS_H #ifndef _FMIFS_H
#define _FMIFS_H #define _FMIFS_H
/* $Id$ /*
*
* fmifs.h * fmifs.h
* *
* Copyright (c) 1998 Mark Russinovich * Copyright (c) 1998 Mark Russinovich
@ -16,21 +15,51 @@
* 1999-02-18 (Emanuele Aliberti) * 1999-02-18 (Emanuele Aliberti)
* Normalized function names. * Normalized function names.
* *
* ---
*
* 2006-09-04 (Hervé Poussineau)
* Add some prototypes
*
*/ */
/* Output command */ /* Output command */
typedef typedef struct
struct
{ {
ULONG Lines; ULONG Lines;
PCHAR Output; PCHAR Output;
} TEXTOUTPUT, *PTEXTOUTPUT; } TEXTOUTPUT, *PTEXTOUTPUT;
/* media flags */
typedef enum
{
FMIFS_UNKNOWN0,
FMIFS_UNKNOWN1,
FMIFS_UNKNOWN2,
FMIFS_UNKNOWN3,
FMIFS_UNKNOWN4,
FMIFS_UNKNOWN5,
FMIFS_UNKNOWN6,
FMIFS_UNKNOWN7,
FMIFS_FLOPPY,
FMIFS_UNKNOWN9,
FMIFS_UNKNOWN10,
FMIFS_UNKNOWN11,
FMIFS_HARDDISK,
FMIFS_UNKNOWN13,
FMIFS_UNKNOWN14,
FMIFS_UNKNOWN15,
FMIFS_UNKNOWN16,
FMIFS_UNKNOWN17,
FMIFS_UNKNOWN18,
FMIFS_UNKNOWN19,
FMIFS_UNKNOWN20,
FMIFS_UNKNOWN21,
FMIFS_UNKNOWN22,
FMIFS_UNKNOWN23,
} FMIFS_MEDIA_FLAG;
/* Callback command types */ /* Callback command types */
typedef typedef enum
enum
{ {
PROGRESS, PROGRESS,
DONEWITHSTRUCTURE, DONEWITHSTRUCTURE,
@ -48,79 +77,91 @@ enum
UNKNOWND, UNKNOWND,
OUTPUT, OUTPUT,
STRUCTUREPROGRESS STRUCTUREPROGRESS
} CALLBACKCOMMAND; } CALLBACKCOMMAND;
/* FMIFS callback definition */ /* FMIFS callback definition */
typedef typedef BOOLEAN
BOOLEAN (NTAPI* PFMIFSCALLBACK)(
(NTAPI * PFMIFSCALLBACK) ( IN CALLBACKCOMMAND Command,
CALLBACKCOMMAND Command, IN ULONG SubAction,
ULONG SubAction, IN PVOID ActionInfo);
PVOID ActionInfo
);
/* Chkdsk command in FMIFS */ /* Chkdsk command in FMIFS */
VOID VOID NTAPI
NTAPI
Chkdsk( Chkdsk(
PWCHAR DriveRoot, IN PWCHAR DriveRoot,
PWCHAR Format, IN PWCHAR Format,
BOOLEAN CorrectErrors, IN BOOLEAN CorrectErrors,
BOOLEAN Verbose, IN BOOLEAN Verbose,
BOOLEAN CheckOnlyIfDirty, IN BOOLEAN CheckOnlyIfDirty,
BOOLEAN ScanDrive, IN BOOLEAN ScanDrive,
PVOID Unused2, IN PVOID Unused2,
PVOID Unused3, IN PVOID Unused3,
PFMIFSCALLBACK Callback IN PFMIFSCALLBACK Callback);
);
/* ChkdskEx command in FMIFS (not in the original) */ /* ChkdskEx command in FMIFS (not in the original) */
VOID VOID NTAPI
NTAPI ChkdskEx(
ChkDskEx( IN PWCHAR DriveRoot,
PWCHAR DriveRoot, IN PWCHAR Format,
PWCHAR Format, IN BOOLEAN CorrectErrors,
BOOLEAN CorrectErrors, IN BOOLEAN Verbose,
BOOLEAN Verbose, IN BOOLEAN CheckOnlyIfDirty,
BOOLEAN CheckOnlyIfDirty, IN BOOLEAN ScanDrive,
BOOLEAN ScanDrive, IN PVOID Unused2,
PVOID Unused2, IN PVOID Unused3,
PVOID Unused3, IN PFMIFSCALLBACK Callback);
PFMIFSCALLBACK Callback
); FMIFS_MEDIA_FLAG NTAPI
ComputeFmMediaType(
IN ULONG MediaType);
/* DiskCopy command in FMIFS */ /* DiskCopy command in FMIFS */
VOID NTAPI
VOID
NTAPI
DiskCopy(VOID); DiskCopy(VOID);
/* Enable/Disable volume compression */ /* Enable/Disable volume compression */
BOOL BOOLEAN NTAPI
NTAPI
EnableVolumeCompression( EnableVolumeCompression(
PWCHAR DriveRoot, IN PWCHAR DriveRoot,
USHORT Compression IN USHORT Compression);
);
/* Format command in FMIFS */ /* Format command in FMIFS */
VOID NTAPI
/* media flags */
#define FMIFS_HARDDISK 0xC
#define FMIFS_FLOPPY 0x8
VOID
NTAPI
FormatEx( FormatEx(
PWCHAR DriveRoot, IN PWCHAR DriveRoot,
ULONG MediaFlag, IN ULONG MediaFlag,
PWCHAR Format, IN PWCHAR Format,
PWCHAR Label, IN PWCHAR Label,
BOOLEAN QuickFormat, IN BOOLEAN QuickFormat,
ULONG ClusterSize, IN ULONG ClusterSize,
PFMIFSCALLBACK Callback IN PFMIFSCALLBACK Callback);
);
BOOLEAN NTAPI
QueryAvailableFileSystemFormat(
IN DWORD Index,
IN OUT PWCHAR FileSystem OPTIONAL, /* FIXME: Probably one minimal size is mandatory, but which one? */
OUT UCHAR* Major OPTIONAL,
OUT UCHAR* Minor OPTIONAL,
OUT BOOLEAN* LastestVersion OPTIONAL);
BOOL NTAPI
QueryDeviceInformation(
IN PWCHAR DriveRoot,
OUT ULONG* Buffer, /* That is probably some 4-bytes structure */
IN ULONG BufferSize); /* 4 */
BOOLEAN NTAPI
QueryLatestFileSystemVersion(
IN PWCHAR FileSystem,
OUT UCHAR* Major OPTIONAL,
OUT UCHAR* Minor OPTIONAL);
/*ULONG NTAPI
QuerySupportedMedia(
PVOID Unknown1,
ULONG Unknown2,
ULONG Unknown3,
ULONG Unknown4);*/
#endif /* ndef _FMIFS_H */ #endif /* ndef _FMIFS_H */