155 lines
2.7 KiB
C++
155 lines
2.7 KiB
C++
#if !defined(HPFS_EA_LIST_DEFINED)
|
|
|
|
#define HPFS_EA_LIST_DEFINED
|
|
|
|
#include "fnode.hxx"
|
|
#include "hmem.hxx"
|
|
#include "secrun.hxx"
|
|
|
|
//
|
|
// Forward references
|
|
//
|
|
|
|
DECLARE_CLASS( DEFERRED_ACTIONS_LIST );
|
|
DECLARE_CLASS( HPFS_EA_LIST );
|
|
DECLARE_CLASS( HPFS_ORPHANS );
|
|
DECLARE_CLASS( HPFS_PATH );
|
|
DECLARE_CLASS( HPFS_SA );
|
|
DECLARE_CLASS( LOG_IO_DP_DRIVE );
|
|
DECLARE_CLASS( MESSAGE );
|
|
DECLARE_CLASS( HOTFIXLIST );
|
|
|
|
|
|
class HPFS_EA_LIST : public OBJECT {
|
|
|
|
|
|
public:
|
|
|
|
DECLARE_CONSTRUCTOR( HPFS_EA_LIST );
|
|
|
|
VIRTUAL
|
|
~HPFS_EA_LIST(
|
|
);
|
|
|
|
BOOLEAN
|
|
Initialize(
|
|
PLOG_IO_DP_DRIVE Drive,
|
|
_FNODE* FnodeData,
|
|
LBN FnodeLbn
|
|
);
|
|
|
|
VERIFY_RETURN_CODE
|
|
VerifyAndFix(
|
|
IN OUT PHPFS_SA SuperArea,
|
|
IN OUT PDEFERRED_ACTIONS_LIST DeferredActions,
|
|
IN PHPFS_PATH CurrentPath,
|
|
IN OUT PMESSAGE Message,
|
|
IN OUT PBOOLEAN ErrorsDetected,
|
|
IN BOOLEAN UpdateAllowed = FALSE,
|
|
IN OUT PHPFS_ORPHANS OrphansList = NULL
|
|
);
|
|
|
|
NONVIRTUAL
|
|
ULONG
|
|
QueryNumberOfEas(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
ULONG
|
|
QueryNumberOfNeedEas(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
ULONG
|
|
QuerySizeOfEas(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
QueryFnodeModified(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
FindAndResolveHotfix(
|
|
IN OUT PHPFS_SA SuperArea
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
QueryPackedEaList(
|
|
OUT PVOID OutputBuffer,
|
|
IN ULONG BufferLength,
|
|
OUT PULONG PackedLength,
|
|
OUT PBOOLEAN IsCorrupt,
|
|
IN PHOTFIXLIST HotfixList DEFAULT NULL
|
|
);
|
|
|
|
|
|
private:
|
|
|
|
NONVIRTUAL
|
|
VOID
|
|
Construct (
|
|
);
|
|
|
|
NONVIRTUAL
|
|
VERIFY_RETURN_CODE
|
|
VerifyOnDiskRun(
|
|
IN OUT PHPFS_SA SuperArea,
|
|
IN OUT PDEFERRED_ACTIONS_LIST DeferredActions,
|
|
IN PHPFS_PATH CurrentPath,
|
|
IN OUT PMESSAGE Message,
|
|
IN OUT PBOOLEAN ErrorsDetected,
|
|
IN BOOLEAN UpdateAllowed,
|
|
IN OUT PHPFS_ORPHANS OrphansList
|
|
);
|
|
|
|
NONVIRTUAL
|
|
VERIFY_RETURN_CODE
|
|
VerifyInTree(
|
|
IN OUT PHPFS_SA SuperArea,
|
|
IN OUT PDEFERRED_ACTIONS_LIST DeferredActions,
|
|
IN PHPFS_PATH CurrentPath,
|
|
IN OUT PMESSAGE Message,
|
|
IN OUT PBOOLEAN ErrorsDetected,
|
|
IN BOOLEAN UpdateAllowed,
|
|
IN OUT PHPFS_ORPHANS OrphansList
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
FindAndResolveHotfixOnDiskRun(
|
|
IN OUT PHPFS_SA SuperArea
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
FindAndResolveHotfixInTree(
|
|
IN OUT PHPFS_SA SuperArea
|
|
);
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
HPFS_EA_LIST::ReadList(
|
|
IN OUT PVOID TargetBuffer,
|
|
IN ULONG TargetBufferLength,
|
|
IN PHOTFIXLIST HotfixList,
|
|
IN OUT PBOOLEAN IsCorrupt
|
|
);
|
|
|
|
|
|
|
|
PLOG_IO_DP_DRIVE _Drive;
|
|
_FNODE* _FnodeData;
|
|
|
|
LBN _FnodeLbn;
|
|
|
|
BOOLEAN _FnodeModified;
|
|
ULONG _NumberOfEas;
|
|
ULONG _NumberOfNeedEas;
|
|
ULONG _SizeOfEas;
|
|
};
|
|
|
|
#endif;
|