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.

81 lines
1.6 KiB

  1. #if !defined( _ATTR_IO_ )
  2. #define _ATTR_IO_
  3. #include "io.hxx"
  4. #include "frs.hxx"
  5. #include "attrib.hxx"
  6. #include "attrlist.hxx"
  7. #include "hmem.hxx"
  8. DECLARE_CLASS( FRS_IO );
  9. class ATTR_IO : public IO_OBJECT {
  10. public:
  11. NONVIRTUAL
  12. ATTR_IO(
  13. ) { _drive = NULL; _data = NULL; };
  14. NONVIRTUAL
  15. ~ATTR_IO(
  16. );
  17. VIRTUAL
  18. BOOLEAN
  19. Setup(
  20. IN PMEM Mem,
  21. IN PLOG_IO_DP_DRIVE Drive,
  22. IN HANDLE Application,
  23. IN HWND WindowHandle,
  24. OUT PBOOLEAN Error
  25. );
  26. VIRTUAL
  27. BOOLEAN
  28. Read(
  29. OUT PULONG pError
  30. );
  31. VIRTUAL
  32. BOOLEAN
  33. Write(
  34. );
  35. VIRTUAL
  36. PVOID
  37. GetBuf(
  38. OUT PULONG Size DEFAULT NULL
  39. );
  40. VIRTUAL
  41. PTCHAR
  42. GetHeaderText(
  43. );
  44. private:
  45. PLOG_IO_DP_DRIVE _drive;
  46. NTFS_ATTRIBUTE _mftdata;
  47. NTFS_FILE_RECORD_SEGMENT _frs;
  48. NTFS_ATTRIBUTE _attr;
  49. ULONG _length;
  50. PVOID _data;
  51. TCHAR _header_text[64];
  52. // support for attribute lists
  53. BOOLEAN _attr_list_io;
  54. HMEM _hmem;
  55. NTFS_FRS_STRUCTURE _frsstruc;
  56. NTFS_ATTRIBUTE_LIST _attr_list;
  57. };
  58. INLINE
  59. ATTR_IO::~ATTR_IO(
  60. )
  61. {
  62. }
  63. #endif // ATTR_IO