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

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