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

273 lines
4.8 KiB
C++

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
rafile.hxx
Abstract:
This module contains the declarations for the
RA_PROCESS_FILE class which handles the read ahead
approach in file verification stage.
Author:
Daniel Chan (danielch) 08-Dec-97
--*/
#if !defined(_RA_PROCESS_FILE_DEFN_)
#define _RA_PROCESS_FILE_DEFN_
#include "supera.hxx"
#include "hmem.hxx"
#include "untfs.hxx"
#include "message.hxx"
#include "ntfsbit.hxx"
#include "numset.hxx"
DECLARE_CLASS( WSTRING );
DECLARE_CLASS( NTFS_ATTRIBUTE );
DECLARE_CLASS( NTFS_FRS_STRUCTURE );
DECLARE_CLASS( NUMBER_SET );
DECLARE_CLASS( NTFS_UPCASE_TABLE );
DECLARE_CLASS( RA_PROCESS_FILE );
DECLARE_CLASS( NTFS_SA );
class RA_PROCESS_FILE : public OBJECT {
public:
UNTFS_EXPORT
DECLARE_CONSTRUCTOR(RA_PROCESS_FILE);
VIRTUAL
UNTFS_EXPORT
~RA_PROCESS_FILE(
);
STATIC
NONVIRTUAL
UNTFS_EXPORT
BOOLEAN
Initialize(
IN PNTFS_SA Sa,
IN BIG_INT TotalNumberOfFrs,
IN PVCN FirstFrsNumber,
IN PULONG NumberOfFrsToRead,
IN PNTFS_FRS_STRUCTURE FrsStruc1,
IN PNTFS_FRS_STRUCTURE FrsStruc2,
IN PHMEM Hmem1,
IN PHMEM Hmem2,
IN HANDLE ReadAheadEvent,
IN HANDLE ReadReadyEvent,
IN PNTFS_ATTRIBUTE MftData,
IN PNTFS_UPCASE_TABLE UpcaseTable
);
STATIC
NTSTATUS
ProcessFilesWrapper(
IN OUT PVOID lpParameter
);
STATIC
NONVIRTUAL
PNTFS_SA
GetSa(
);
STATIC
NONVIRTUAL
BIG_INT
GetTotalNumberOfFrs(
);
STATIC
NONVIRTUAL
PVCN
GetFirstFrsNumber(
);
STATIC
NONVIRTUAL
PULONG
GetNumberOfFrsToRead(
);
STATIC
NONVIRTUAL
PNTFS_FRS_STRUCTURE
GetFrsStruc1(
);
STATIC
NONVIRTUAL
PNTFS_FRS_STRUCTURE
GetFrsStruc2(
);
STATIC
NONVIRTUAL
PHMEM
GetHmem1(
);
STATIC
NONVIRTUAL
PHMEM
GetHmem2(
);
STATIC
NONVIRTUAL
HANDLE
GetReadAheadEvent(
);
STATIC
NONVIRTUAL
HANDLE
GetReadReadyEvent(
);
STATIC
NONVIRTUAL
PNTFS_ATTRIBUTE
GetMftData(
);
STATIC
NONVIRTUAL
PNTFS_UPCASE_TABLE
GetUpcaseTable(
);
private:
NONVIRTUAL
VOID
Construct (
);
NONVIRTUAL
VOID
Destroy(
);
STATIC PNTFS_SA _sa;
STATIC ULONG64 _total_number_of_frs;
STATIC PVCN _first_frs_number;
STATIC PULONG _number_of_frs_to_read;
STATIC PNTFS_FRS_STRUCTURE _frsstruc1;
STATIC PNTFS_FRS_STRUCTURE _frsstruc2;
STATIC PHMEM _hmem1;
STATIC PHMEM _hmem2;
STATIC HANDLE _read_ahead_event;
STATIC HANDLE _read_ready_event;
STATIC PNTFS_ATTRIBUTE _mft_data;
STATIC PNTFS_UPCASE_TABLE _upcase_table;
};
INLINE
BIG_INT
RA_PROCESS_FILE::GetTotalNumberOfFrs(
)
{
return _total_number_of_frs;
}
INLINE
PVCN
RA_PROCESS_FILE::GetFirstFrsNumber(
)
{
return _first_frs_number;
}
INLINE
PULONG
RA_PROCESS_FILE::GetNumberOfFrsToRead(
)
{
return _number_of_frs_to_read;
}
INLINE
PNTFS_FRS_STRUCTURE
RA_PROCESS_FILE::GetFrsStruc1(
)
{
return _frsstruc1;
}
INLINE
PNTFS_FRS_STRUCTURE
RA_PROCESS_FILE::GetFrsStruc2(
)
{
return _frsstruc2;
}
INLINE
PHMEM
RA_PROCESS_FILE::GetHmem1(
)
{
return _hmem1;
}
INLINE
PHMEM
RA_PROCESS_FILE::GetHmem2(
)
{
return _hmem2;
}
INLINE
HANDLE
RA_PROCESS_FILE::GetReadAheadEvent(
)
{
return _read_ahead_event;
}
INLINE
HANDLE
RA_PROCESS_FILE::GetReadReadyEvent(
)
{
return _read_ready_event;
}
INLINE
PNTFS_SA
RA_PROCESS_FILE::GetSa(
)
{
return _sa;
}
INLINE
PNTFS_ATTRIBUTE
RA_PROCESS_FILE::GetMftData(
)
{
return _mft_data;
}
INLINE
PNTFS_UPCASE_TABLE
RA_PROCESS_FILE::GetUpcaseTable(
)
{
return _upcase_table;
}
#endif // _RA_PROCESS_FILE_DEFN_