166 lines
3.6 KiB
C++
166 lines
3.6 KiB
C++
/*++
|
|
|
|
Copyright (c) 1992-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
logfile.hxx
|
|
|
|
Abstract:
|
|
|
|
This module contains the declarations for the NTFS_LOG_FILE
|
|
class, which models the log file for an NTFS volume.
|
|
|
|
The utilities do not pretend to understand the contents of the
|
|
log file. They only create it and set its signature.
|
|
|
|
Author:
|
|
|
|
Bill McJohn (billmc) 05-May-1992
|
|
|
|
Environment:
|
|
|
|
ULIB, User Mode
|
|
|
|
--*/
|
|
#if !defined( NTFS_LOG_FILE_DEFN )
|
|
|
|
#define NTFS_LOG_FILE_DEFN
|
|
|
|
#include "frs.hxx"
|
|
#include "drive.hxx"
|
|
|
|
typedef enum LOG_FILE_SIGNATURE_CODE {
|
|
|
|
LogFileSignatureCreated,
|
|
LogFileSignatureChecked
|
|
};
|
|
|
|
// Note that LogFileFillCharacter matches LOG_FILE_SIGNATURE_CREATED;
|
|
// this relationship must be maintained.
|
|
|
|
#define LogFileFillCharacter (CHAR)0xFF
|
|
|
|
CONST ULONG LogFileSignatureLength = 4;
|
|
#define LOG_FILE_SIGNATURE_CREATED "\xFF\xFF\xFF\xFF"
|
|
#define LOG_FILE_SIGNATURE_CHECKED "CHKD"
|
|
|
|
class NTFS_LOG_FILE : public NTFS_FILE_RECORD_SEGMENT {
|
|
|
|
public:
|
|
|
|
UNTFS_EXPORT
|
|
DECLARE_CONSTRUCTOR( NTFS_LOG_FILE );
|
|
|
|
VIRTUAL
|
|
UNTFS_EXPORT
|
|
~NTFS_LOG_FILE(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
UNTFS_EXPORT
|
|
BOOLEAN
|
|
Initialize(
|
|
IN OUT PNTFS_MASTER_FILE_TABLE Mft
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Create(
|
|
IN PCSTANDARD_INFORMATION StandardInformation,
|
|
IN LCN NearLcn,
|
|
IN ULONG InitialSize OPTIONAL,
|
|
IN OUT PNTFS_BITMAP VolumeBitmap
|
|
);
|
|
|
|
NONVIRTUAL
|
|
UNTFS_EXPORT
|
|
BOOLEAN
|
|
CreateDataAttribute(
|
|
IN LCN NearLcn,
|
|
IN ULONG InitialSize OPTIONAL,
|
|
IN OUT PNTFS_BITMAP VolumeBitmap
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
MarkVolumeChecked(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
MarkVolumeChecked(
|
|
BOOLEAN WriteSecondPage,
|
|
LSN GreatestLsn
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Reset(
|
|
IN OUT PMESSAGE Message
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Resize(
|
|
IN BIG_INT NewSize,
|
|
IN OUT PNTFS_BITMAP VolumeBitmap,
|
|
IN BOOLEAN GetWhatYouCan,
|
|
OUT PBOOLEAN Changed,
|
|
OUT PBOOLEAN LogFileGrew,
|
|
IN OUT PMESSAGE Message
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
VerifyAndFix(
|
|
IN OUT PNTFS_BITMAP VolumeBitmap,
|
|
IN OUT PNTFS_INDEX_TREE RootIndex,
|
|
OUT PBOOLEAN Changes,
|
|
IN OUT PNTFS_CHKDSK_REPORT ChkdskReport,
|
|
IN FIX_LEVEL FixLevel,
|
|
IN BOOLEAN Resize,
|
|
IN ULONG LogFileSize,
|
|
IN OUT PNUMBER_SET BadClusters,
|
|
IN OUT PMESSAGE Message
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
EnsureCleanShutdown(
|
|
OUT PLSN Lsn
|
|
);
|
|
|
|
STATIC
|
|
ULONG
|
|
QueryDefaultSize(
|
|
IN PCDP_DRIVE Drive,
|
|
IN BIG_INT VolumeSectors
|
|
);
|
|
|
|
STATIC
|
|
ULONG
|
|
QueryMinimumSize(
|
|
IN PCDP_DRIVE Drive,
|
|
IN BIG_INT VolumeSectors
|
|
);
|
|
|
|
STATIC
|
|
ULONG
|
|
QueryMaximumSize(
|
|
IN PCDP_DRIVE Drive,
|
|
IN BIG_INT VolumeSectors
|
|
);
|
|
|
|
private:
|
|
|
|
NONVIRTUAL
|
|
VOID
|
|
Construct(
|
|
);
|
|
|
|
|
|
};
|
|
|
|
#endif
|