Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.5 KiB

  1. #if !defined( _LOG_REC_IO_ )
  2. #define _LOG_REC_IO_
  3. #include "io.hxx"
  4. #include "frs.hxx"
  5. #include "attrib.hxx"
  6. #include "hmem.hxx"
  7. DECLARE_CLASS( LOG_RECORD_IO );
  8. class LOG_RECORD_IO : public IO_OBJECT {
  9. public:
  10. NONVIRTUAL
  11. LOG_RECORD_IO(
  12. ) { _drive = NULL; _buffer = NULL; };
  13. NONVIRTUAL
  14. ~LOG_RECORD_IO() { DELETE(_buffer); };
  15. VIRTUAL
  16. BOOLEAN
  17. Setup(
  18. IN PMEM Mem,
  19. IN PLOG_IO_DP_DRIVE Drive,
  20. IN HANDLE Application,
  21. IN HWND WindowHandle,
  22. OUT PBOOLEAN Error
  23. );
  24. VIRTUAL
  25. BOOLEAN
  26. Read(
  27. OUT PULONG pError
  28. );
  29. VIRTUAL
  30. BOOLEAN
  31. Write(
  32. );
  33. VIRTUAL
  34. PVOID
  35. GetBuf(
  36. OUT PULONG Size DEFAULT NULL
  37. );
  38. VIRTUAL
  39. PTCHAR
  40. GetHeaderText(
  41. );
  42. private:
  43. PLOG_IO_DP_DRIVE _drive;
  44. NTFS_ATTRIBUTE _mftdata;
  45. NTFS_FILE_RECORD_SEGMENT _frs;
  46. TCHAR _header_text[64];
  47. PVOID _buffer;
  48. ULONG _length;
  49. NTFS_ATTRIBUTE _attrib;
  50. BOOLEAN _is_multi_page;
  51. ULONG _first_page_portion; // iff _is_multi_page
  52. ULONG _second_page_portion; // iff _is_multi_page
  53. };
  54. #endif