273 lines
4.8 KiB
C++
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_
|