130 lines
2.9 KiB
C++
130 lines
2.9 KiB
C++
/*++
|
|
|
|
Copyright (c) 1991 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
badfile.hxx
|
|
|
|
Abstract:
|
|
|
|
This module contains the declarations for the NTFS_BAD_CLUSTER_FILE
|
|
class, which models the bad cluster file for an NTFS volume.
|
|
|
|
The DATA attribute of the bad cluster file is a non-resident
|
|
attribute to which bad clusters are allocated. It is stored
|
|
as a sparse file with LCN = VCN.
|
|
|
|
Author:
|
|
|
|
Bill McJohn (billmc) 18-June-91
|
|
|
|
Environment:
|
|
|
|
ULIB, User Mode
|
|
|
|
--*/
|
|
#if !defined( NTFS_BAD_CLUSTER_FILE_DEFN )
|
|
|
|
#define NTFS_BAD_CLUSTER_FILE_DEFN
|
|
|
|
#include "frs.hxx"
|
|
|
|
DECLARE_CLASS( IO_DP_DRIVE );
|
|
DECLARE_CLASS( NTFS_ATTRIBUTE);
|
|
DECLARE_CLASS( NTFS_MASTER_FILE_TABLE );
|
|
DECLARE_CLASS( NTFS_BITMAP );
|
|
DECLARE_CLASS( NUMBER_SET );
|
|
|
|
class NTFS_BAD_CLUSTER_FILE : public NTFS_FILE_RECORD_SEGMENT {
|
|
|
|
public:
|
|
|
|
UNTFS_EXPORT
|
|
DECLARE_CONSTRUCTOR( NTFS_BAD_CLUSTER_FILE );
|
|
|
|
UNTFS_EXPORT
|
|
VIRTUAL
|
|
~NTFS_BAD_CLUSTER_FILE(
|
|
);
|
|
|
|
UNTFS_EXPORT
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Initialize(
|
|
IN OUT PNTFS_MASTER_FILE_TABLE Mft
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Create(
|
|
IN PCSTANDARD_INFORMATION StandardInformation,
|
|
IN OUT PNTFS_BITMAP Bitmap,
|
|
IN PCNUMBER_SET BadClusters
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
VerifyAndFix(
|
|
IN OUT PNTFS_BITMAP VolumeBitmap,
|
|
IN OUT PNTFS_INDEX_TREE RootIndex,
|
|
OUT PBOOLEAN Changes,
|
|
IN FIX_LEVEL FixLevel,
|
|
IN OUT PMESSAGE Message
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Add(
|
|
IN LCN Lcn
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Add(
|
|
IN PCNUMBER_SET ClustersToAdd
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
AddRun(
|
|
IN LCN Lcn,
|
|
IN BIG_INT RunLength
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
IsInList(
|
|
IN LCN Lcn
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BIG_INT
|
|
QueryNumBad(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Flush(
|
|
IN OUT PNTFS_BITMAP Bitmap,
|
|
IN OUT PNTFS_INDEX_TREE ParentIndex DEFAULT NULL
|
|
);
|
|
|
|
private:
|
|
|
|
NONVIRTUAL
|
|
VOID
|
|
Construct(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
VOID
|
|
Destroy(
|
|
);
|
|
|
|
PNTFS_ATTRIBUTE _DataAttribute;
|
|
};
|
|
|
|
|
|
#endif
|