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 */
}
/* FMIFS.2 (SP4 only?) */
VOID STDCALL
ChkdskEx (VOID)
{
}
/* EOF */

View file

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

View file

@ -1,7 +1,6 @@
#ifndef _FMIFS_H
#define _FMIFS_H
/* $Id$
*
/*
* fmifs.h
*
* Copyright (c) 1998 Mark Russinovich
@ -16,21 +15,51 @@
* 1999-02-18 (Emanuele Aliberti)
* Normalized function names.
*
* ---
*
* 2006-09-04 (Hervé Poussineau)
* Add some prototypes
*
*/
/* Output command */
typedef
struct
typedef struct
{
ULONG Lines;
PCHAR Output;
} 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 */
typedef
enum
typedef enum
{
PROGRESS,
DONEWITHSTRUCTURE,
@ -48,79 +77,91 @@ enum
UNKNOWND,
OUTPUT,
STRUCTUREPROGRESS
} CALLBACKCOMMAND;
/* FMIFS callback definition */
typedef
BOOLEAN
(NTAPI * PFMIFSCALLBACK) (
CALLBACKCOMMAND Command,
ULONG SubAction,
PVOID ActionInfo
);
typedef BOOLEAN
(NTAPI* PFMIFSCALLBACK)(
IN CALLBACKCOMMAND Command,
IN ULONG SubAction,
IN PVOID ActionInfo);
/* Chkdsk command in FMIFS */
VOID
NTAPI
VOID NTAPI
Chkdsk(
PWCHAR DriveRoot,
PWCHAR Format,
BOOLEAN CorrectErrors,
BOOLEAN Verbose,
BOOLEAN CheckOnlyIfDirty,
BOOLEAN ScanDrive,
PVOID Unused2,
PVOID Unused3,
PFMIFSCALLBACK Callback
);
IN PWCHAR DriveRoot,
IN PWCHAR Format,
IN BOOLEAN CorrectErrors,
IN BOOLEAN Verbose,
IN BOOLEAN CheckOnlyIfDirty,
IN BOOLEAN ScanDrive,
IN PVOID Unused2,
IN PVOID Unused3,
IN PFMIFSCALLBACK Callback);
/* ChkdskEx command in FMIFS (not in the original) */
VOID
NTAPI
ChkDskEx(
PWCHAR DriveRoot,
PWCHAR Format,
BOOLEAN CorrectErrors,
BOOLEAN Verbose,
BOOLEAN CheckOnlyIfDirty,
BOOLEAN ScanDrive,
PVOID Unused2,
PVOID Unused3,
PFMIFSCALLBACK Callback
);
VOID NTAPI
ChkdskEx(
IN PWCHAR DriveRoot,
IN PWCHAR Format,
IN BOOLEAN CorrectErrors,
IN BOOLEAN Verbose,
IN BOOLEAN CheckOnlyIfDirty,
IN BOOLEAN ScanDrive,
IN PVOID Unused2,
IN PVOID Unused3,
IN PFMIFSCALLBACK Callback);
FMIFS_MEDIA_FLAG NTAPI
ComputeFmMediaType(
IN ULONG MediaType);
/* DiskCopy command in FMIFS */
VOID
NTAPI
VOID NTAPI
DiskCopy(VOID);
/* Enable/Disable volume compression */
BOOL
NTAPI
BOOLEAN NTAPI
EnableVolumeCompression(
PWCHAR DriveRoot,
USHORT Compression
);
IN PWCHAR DriveRoot,
IN USHORT Compression);
/* Format command in FMIFS */
/* media flags */
#define FMIFS_HARDDISK 0xC
#define FMIFS_FLOPPY 0x8
VOID
NTAPI
VOID NTAPI
FormatEx(
PWCHAR DriveRoot,
ULONG MediaFlag,
PWCHAR Format,
PWCHAR Label,
BOOLEAN QuickFormat,
ULONG ClusterSize,
PFMIFSCALLBACK Callback
);
IN PWCHAR DriveRoot,
IN ULONG MediaFlag,
IN PWCHAR Format,
IN PWCHAR Label,
IN BOOLEAN QuickFormat,
IN ULONG ClusterSize,
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 */