windows-nt/Source/XPSP1/NT/base/fs/utils/convert/convert.hxx
2020-09-26 16:20:57 +08:00

171 lines
4.2 KiB
C++

/*++
Copyright (c) 1990-2000 Microsoft Corporation
Module Name:
convert.hxx
Abstract:
This module contains the declaration of the CONVERT class, which
implements the File System Conversion Utility.
Author:
Ramon Juan San Andres (ramonsa) 27-Sep-1991
Revision History:
--*/
#if !defined( _CONVERT_ )
#define _CONVERT_
#include "program.hxx"
#include "autoentr.hxx"
#include "autoreg.hxx"
#if defined(FE_SB) && defined(_X86_)
#include "drive.hxx" // for DP_DRIVE class
#endif
//
// Convert exit codes
//
#define EXIT_SUCCESS 0 // Volume Converted
#define EXIT_SCHEDULED 1 // Conversion scheduled for next reboot
#define EXIT_NOCANDO 2 // Specified conversion not available
#define EXIT_UNKNOWN 3 // Unknown file system
#define EXIT_ERROR 4 // Conversion error
#define EXIT_NOFREESPACE 5 // Insufficient free space for conversion
DECLARE_CLASS( STREAM_MESSAGE );
DECLARE_CLASS( WSTRING );
DECLARE_CLASS( CONVERT );
class CONVERT : public PROGRAM {
public:
DECLARE_CONSTRUCTOR( CONVERT );
NONVIRTUAL
VOID
Construct (
);
NONVIRTUAL
~CONVERT (
);
NONVIRTUAL
BOOLEAN
Initialize (
OUT PINT ExitCode
);
NONVIRTUAL
INT
Convert (
);
#if defined(FE_SB) && defined(_X86_)
// NEC98 '95.6.23
// We need to use ChangeBPB1 and ChangeBPB2
// We use these function when logicalsectorsize != phisicalsectorsize
BOOLEAN
ChangeBPB1(
IN PCWSTRING NtDrive
);
BOOLEAN
ChangeBPB2(
);
#endif
private:
NONVIRTUAL
VOID
Destroy (
);
NONVIRTUAL
BOOLEAN
RemoveScheduledAutoConv(
);
NONVIRTUAL
PPATH
FindSystemFile(
IN PWSTR FileName
);
NONVIRTUAL
BOOLEAN
ParseArguments(
OUT PINT ExitCode
);
NONVIRTUAL
BOOLEAN
ParseCommandLine (
IN PCWSTRING CommandLine,
IN BOOLEAN Interactive
);
NONVIRTUAL
BOOLEAN
Schedule (
);
NONVIRTUAL
BOOLEAN
ScheduleAutoConv(
);
DSTRING _DisplayDrive; // Display name of the given drive
DSTRING _DosDrive; // Dos guid name or drive letter of the volume to convert
DSTRING _GuidDrive; // Dos guid name of the volume to convert
PATH _FullPath; // Mount point or drive letter of the volume to convert
DSTRING _NtDrive; // NT drive name of volume to convert
DSTRING _FsName; // Name of target file system
DSTRING _CvtZoneFileName; // Convert Zone File Name
BOOLEAN _Verbose; // Verbose flag
BOOLEAN _NoSecurity; // NoSecurity flag
BOOLEAN _NoChkdsk; // NoChkdsk flag
BOOLEAN _ForceDismount; // Force Dismount flag
BOOLEAN _Help; // Help flag
BOOLEAN _Restart; // Restart flag
#ifdef DBLSPACE_ENABLED
BOOLEAN _Uncompress; // Set if we're converting a cvf
DSTRING _CvfName; // If uncompress, the name of the cvf
BOOLEAN _Compress; // Compress resulting filesystem
UCHAR _SequenceNumber // sequence number of CVF to uncompress
#endif // DBLSPACE_ENABLED
#if defined(FE_SB) && defined(_X86_)
// NEC98 '95.6.23
// It use ChangeBPB1 and ChangeBPB2.
USHORT _BytePerSec;
UCHAR _SecPerClus;
USHORT _Reserved;
USHORT _SectorNum;
USHORT _SecPerFat;
ULONG _LargeSector;
#endif
PPATH _Autochk; // Path to Autochk
PPATH _Autoconv; // Path to Autoconv
};
#endif // _CONVERT_