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

219 lines
3.9 KiB
C++

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
rasd.hxx
Abstract:
This module contains the declarations for the
RA_PROCESS_SD class which handles the read ahead
approach in security descriptor verification stage.
Author:
Daniel Chan (danielch) 09-Dec-98
--*/
#if !defined(_RA_PROCESS_SD_DEFN_)
#define _RA_PROCESS_SD_DEFN_
#include "supera.hxx"
#include "untfs.hxx"
#include "message.hxx"
DECLARE_CLASS( NTFS_FILE_RECORD_SEGMENT );
DECLARE_CLASS( RA_PROCESS_SD );
DECLARE_CLASS( NTFS_SA );
DECLARE_CLASS( NTFS_MASTER_FILE_TABLE );
class RA_PROCESS_SD : public OBJECT {
public:
UNTFS_EXPORT
DECLARE_CONSTRUCTOR(RA_PROCESS_SD);
VIRTUAL
UNTFS_EXPORT
~RA_PROCESS_SD(
);
STATIC
NONVIRTUAL
UNTFS_EXPORT
BOOLEAN
Initialize(
IN PNTFS_SA Sa,
IN BIG_INT TotalNumberOfFrs,
IN PVCN FirstFrsNumber,
IN PULONG NumberOfFrsToRead,
IN PNTFS_FILE_RECORD_SEGMENT Frs1,
IN PNTFS_FILE_RECORD_SEGMENT Frs2,
IN HANDLE ReadAheadEvent,
IN HANDLE ReadReadyEvent,
IN PNTFS_MASTER_FILE_TABLE Mft
);
STATIC
NTSTATUS
ProcessSDWrapper(
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_FILE_RECORD_SEGMENT
GetFrs1(
);
STATIC
NONVIRTUAL
PNTFS_FILE_RECORD_SEGMENT
GetFrs2(
);
STATIC
NONVIRTUAL
HANDLE
GetReadAheadEvent(
);
STATIC
NONVIRTUAL
HANDLE
GetReadReadyEvent(
);
STATIC
NONVIRTUAL
PNTFS_MASTER_FILE_TABLE
GetMft(
);
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_FILE_RECORD_SEGMENT _frs1;
STATIC PNTFS_FILE_RECORD_SEGMENT _frs2;
STATIC HANDLE _read_ahead_event;
STATIC HANDLE _read_ready_event;
STATIC PNTFS_MASTER_FILE_TABLE _mft;
};
INLINE
BIG_INT
RA_PROCESS_SD::GetTotalNumberOfFrs(
)
{
return _total_number_of_frs;
}
INLINE
PVCN
RA_PROCESS_SD::GetFirstFrsNumber(
)
{
return _first_frs_number;
}
INLINE
PULONG
RA_PROCESS_SD::GetNumberOfFrsToRead(
)
{
return _number_of_frs_to_read;
}
INLINE
PNTFS_FILE_RECORD_SEGMENT
RA_PROCESS_SD::GetFrs1(
)
{
return _frs1;
}
INLINE
PNTFS_FILE_RECORD_SEGMENT
RA_PROCESS_SD::GetFrs2(
)
{
return _frs2;
}
INLINE
HANDLE
RA_PROCESS_SD::GetReadAheadEvent(
)
{
return _read_ahead_event;
}
INLINE
HANDLE
RA_PROCESS_SD::GetReadReadyEvent(
)
{
return _read_ready_event;
}
INLINE
PNTFS_SA
RA_PROCESS_SD::GetSa(
)
{
return _sa;
}
INLINE
PNTFS_MASTER_FILE_TABLE
RA_PROCESS_SD::GetMft(
)
{
return _mft;
}
#endif // _RA_PROCESS_SD_DEFN_