71 lines
1.5 KiB
C++
71 lines
1.5 KiB
C++
#if !defined( _LOG_REC_IO_ )
|
|
|
|
#define _LOG_REC_IO_
|
|
|
|
#include "io.hxx"
|
|
#include "frs.hxx"
|
|
#include "attrib.hxx"
|
|
#include "hmem.hxx"
|
|
|
|
DECLARE_CLASS( LOG_RECORD_IO );
|
|
|
|
class LOG_RECORD_IO : public IO_OBJECT {
|
|
|
|
public:
|
|
|
|
NONVIRTUAL
|
|
LOG_RECORD_IO(
|
|
) { _drive = NULL; _buffer = NULL; };
|
|
|
|
NONVIRTUAL
|
|
~LOG_RECORD_IO() { DELETE(_buffer); };
|
|
|
|
|
|
VIRTUAL
|
|
BOOLEAN
|
|
Setup(
|
|
IN PMEM Mem,
|
|
IN PLOG_IO_DP_DRIVE Drive,
|
|
IN HANDLE Application,
|
|
IN HWND WindowHandle,
|
|
OUT PBOOLEAN Error
|
|
);
|
|
|
|
VIRTUAL
|
|
BOOLEAN
|
|
Read(
|
|
OUT PULONG pError
|
|
);
|
|
|
|
VIRTUAL
|
|
BOOLEAN
|
|
Write(
|
|
);
|
|
|
|
VIRTUAL
|
|
PVOID
|
|
GetBuf(
|
|
OUT PULONG Size DEFAULT NULL
|
|
);
|
|
|
|
VIRTUAL
|
|
PTCHAR
|
|
GetHeaderText(
|
|
);
|
|
|
|
private:
|
|
|
|
PLOG_IO_DP_DRIVE _drive;
|
|
NTFS_ATTRIBUTE _mftdata;
|
|
NTFS_FILE_RECORD_SEGMENT _frs;
|
|
TCHAR _header_text[64];
|
|
PVOID _buffer;
|
|
ULONG _length;
|
|
NTFS_ATTRIBUTE _attrib;
|
|
BOOLEAN _is_multi_page;
|
|
ULONG _first_page_portion; // iff _is_multi_page
|
|
ULONG _second_page_portion; // iff _is_multi_page
|
|
};
|
|
|
|
#endif
|