NT4/private/utils/uhpfs/inc/hpfseal.hxx
2020-09-30 17:12:29 +02:00

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;