189 lines
6.5 KiB
C++
189 lines
6.5 KiB
C++
|
/*++
|
||
|
|
||
|
Copyright (c) 1990 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
ifsentry.hxx
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Contains prototypes for entry points to the IFS
|
||
|
utility DLLs.
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
User Mode
|
||
|
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#if !defined ( _IFS_ENTRY_ )
|
||
|
|
||
|
#define _IFS_ENTRY_
|
||
|
|
||
|
#if !defined(_IFS_SERV_)
|
||
|
|
||
|
//
|
||
|
// Internal definitions for Flags field in CHKDSKEX_FN_PARAM
|
||
|
//
|
||
|
#define CHKDSK_RECOVER_FREE_SPACE 0x00000002UL
|
||
|
#define CHKDSK_RECOVER_ALLOC_SPACE 0x00000004UL
|
||
|
|
||
|
//
|
||
|
// External definitions for Flags field in CHKDSKEX_FN_PARAM
|
||
|
//
|
||
|
|
||
|
// CHKDSK_VERBOSE
|
||
|
// - For FAT, chkdsk will print every filename being processed
|
||
|
// - For NTFS, chkdsk will print clean up messages
|
||
|
// CHKDSK_RECOVER
|
||
|
// - Perform sector checking on free and allocated space
|
||
|
// CHKDSK_EXTEND
|
||
|
// - For NTFS, chkdsk will extend a volume
|
||
|
// CHKDSK_DOWNGRADE (for NT 5 or later but obsolete anyway)
|
||
|
// - For NTFS, this downgrade a volume from most recent NTFS version
|
||
|
// CHKDSK_ENABLE_UPGRADE (for NT 5 or later but obsolete anyway)
|
||
|
// - For NTFS, this upgrades a volume to most recent NTFS version
|
||
|
// CHKDSK_RESIZE_LOGFILE
|
||
|
// - For NTFS, this changes the size of the logfile
|
||
|
// CHKDSK_CHECK_IF_DIRTY
|
||
|
// - Perform consistency check only if the volume is dirty
|
||
|
// CHKDSK_FORCE
|
||
|
// - Forces the volume to dismount first if necessary (implies /F)
|
||
|
// CHKDSK_SKIP_INDEX_SCAN
|
||
|
// - Skip the scanning of each index entry
|
||
|
// CHKDSK_SKIP_CYCLE_SCAN
|
||
|
// - Skip the checking of cycles within the directory tree
|
||
|
|
||
|
#define CHKDSK_VERBOSE 0x00000001UL
|
||
|
#define CHKDSK_RECOVER (CHKDSK_RECOVER_FREE_SPACE | \
|
||
|
CHKDSK_RECOVER_ALLOC_SPACE)
|
||
|
#define CHKDSK_EXTEND 0x00000008UL
|
||
|
#define CHKDSK_DOWNGRADE 0x00000010UL
|
||
|
#define CHKDSK_ENABLE_UPGRADE 0x00000020UL
|
||
|
#define CHKDSK_RESIZE_LOGFILE 0x00000040UL
|
||
|
#define CHKDSK_CHECK_IF_DIRTY 0x00000080UL
|
||
|
#define CHKDSK_FORCE 0x00000100UL
|
||
|
#define CHKDSK_SKIP_INDEX_SCAN 0x00000200UL
|
||
|
#define CHKDSK_SKIP_CYCLE_SCAN 0x00000400UL
|
||
|
|
||
|
typedef struct _CHKDSKEX_FN_PARAM {
|
||
|
UCHAR Major; // initial version is 1.0
|
||
|
UCHAR Minor;
|
||
|
ULONG Flags;
|
||
|
ULONG LogFileSize;
|
||
|
PPATH PathToCheck; // path including mount points
|
||
|
PPATH RootPath; // path from the root of the actual drive
|
||
|
} CHKDSKEX_FN_PARAM, *PCHKDSKEX_FN_PARAM;
|
||
|
|
||
|
//
|
||
|
// External definitions for Flags field in FORMATEX_FN_PARAM
|
||
|
//
|
||
|
|
||
|
#define FORMAT_QUICK 0x00000001UL
|
||
|
#define FORMAT_BACKWARD_COMPATIBLE 0x00000002UL
|
||
|
#define FORMAT_FORCE 0x00000004UL
|
||
|
|
||
|
// FORMAT_QUICK
|
||
|
// - Performs a quick format
|
||
|
// FORMAT_BACKWARD_COMPATIBLE
|
||
|
// - Formats a volume to be backward compatible to an older version of NTFS volume
|
||
|
// FORMAT_FORCE
|
||
|
// - Forces the volume to dismount first if necessary
|
||
|
|
||
|
|
||
|
typedef struct _FORMATEX_FN_PARAM {
|
||
|
UCHAR Major; // initial version is 1.0
|
||
|
UCHAR Minor;
|
||
|
ULONG Flags;
|
||
|
PCWSTRING LabelString; // supplies the volume's label
|
||
|
ULONG ClusterSize; // supplies the cluster size for the volume
|
||
|
} FORMATEX_FN_PARAM, *PFORMATEX_FN_PARAM;
|
||
|
|
||
|
#endif // _IFS_SERV_
|
||
|
|
||
|
#if ( defined( _AUTOCHECK_ ) || defined( _EFICHECK_ ) ) && !defined( _SETUP_LOADER_ )
|
||
|
#define FAR
|
||
|
#define WINAPI __stdcall
|
||
|
#define APIENTRY WINAPI
|
||
|
#endif // _AUTOCHECK_ || _SETUP_LOADER_
|
||
|
|
||
|
typedef BOOLEAN(FAR APIENTRY * CHKDSK_FN)( PCWSTRING DriveName,
|
||
|
PMESSAGE Message,
|
||
|
BOOLEAN Fix,
|
||
|
BOOLEAN Verbose,
|
||
|
BOOLEAN OnlyIfDirty,
|
||
|
BOOLEAN Recover,
|
||
|
PPATH PathToCheck,
|
||
|
BOOLEAN Extend,
|
||
|
BOOLEAN ResizeLogFile,
|
||
|
ULONG LogFileSize,
|
||
|
PULONG ExitStatus);
|
||
|
|
||
|
typedef BOOLEAN(FAR APIENTRY * CHKDSKEX_FN)( PCWSTRING DriveName,
|
||
|
PMESSAGE Message,
|
||
|
BOOLEAN Fix,
|
||
|
PCHKDSKEX_FN_PARAM Param,
|
||
|
PULONG ExitStatus );
|
||
|
|
||
|
typedef BOOLEAN(FAR APIENTRY * FORMAT_FN)( PCWSTRING,
|
||
|
PMESSAGE,
|
||
|
BOOLEAN,
|
||
|
BOOLEAN,
|
||
|
MEDIA_TYPE,
|
||
|
PCWSTRING,
|
||
|
ULONG );
|
||
|
|
||
|
typedef BOOLEAN(FAR APIENTRY * FORMATEX_FN)( PCWSTRING,
|
||
|
PMESSAGE,
|
||
|
PFORMATEX_FN_PARAM,
|
||
|
MEDIA_TYPE );
|
||
|
|
||
|
|
||
|
typedef BOOLEAN(FAR APIENTRY * RECOVER_FN)( PPATH, PMESSAGE );
|
||
|
|
||
|
typedef BOOLEAN (FAR APIENTRY * EXTEND_FN)(PCWSTRING, PMESSAGE, BOOLEAN Verify);
|
||
|
|
||
|
#if !defined(_IFS_SERV_)
|
||
|
|
||
|
//
|
||
|
// Convert status code
|
||
|
//
|
||
|
typedef enum _CONVERT_STATUS {
|
||
|
|
||
|
CONVERT_STATUS_CONVERTED,
|
||
|
CONVERT_STATUS_INVALID_FILESYSTEM,
|
||
|
CONVERT_STATUS_CONVERSION_NOT_AVAILABLE,
|
||
|
CONVERT_STATUS_CANNOT_LOCK_DRIVE,
|
||
|
CONVERT_STATUS_ERROR,
|
||
|
CONVERT_STATUS_INSUFFICIENT_SPACE,
|
||
|
CONVERT_STATUS_NTFS_RESERVED_NAMES,
|
||
|
CONVERT_STATUS_DRIVE_IS_DIRTY,
|
||
|
CONVERT_STATUS_INSUFFICIENT_FREE_SPACE
|
||
|
|
||
|
} CONVERT_STATUS, *PCONVERT_STATUS;
|
||
|
|
||
|
#endif // _IFS_SERV_
|
||
|
|
||
|
typedef BOOLEAN(FAR APIENTRY * CONVERT_FN)( PCWSTRING,
|
||
|
PCWSTRING,
|
||
|
PMESSAGE,
|
||
|
BOOLEAN,
|
||
|
BOOLEAN,
|
||
|
PCONVERT_STATUS );
|
||
|
|
||
|
typedef BOOLEAN (FAR APIENTRY * CHECKSPACE_FN)(
|
||
|
PCWSTRING,
|
||
|
PCWSTRING,
|
||
|
PMESSAGE,
|
||
|
BOOLEAN,
|
||
|
BOOLEAN,
|
||
|
BOOLEAN );
|
||
|
|
||
|
typedef BOOLEAN(FAR APIENTRY * NAMETABLE_FN)( PCWSTRING,
|
||
|
PCWSTRING,
|
||
|
PMESSAGE );
|
||
|
|
||
|
#endif // _IFS_ENTRY_
|