Leaked source code of windows server 2003
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.

95 lines
2.0 KiB

  1. /*++
  2. 1998 Seagate Software, Inc. All rights reserved.
  3. Module Name:
  4. RsCln2.h
  5. Abstract:
  6. This header is local to the RsCln module. It contains defined constants
  7. and the class definitions for CRsClnVolume and CRsClnFile. See the
  8. implementation files for descriptions of these classes.
  9. Author:
  10. Carl Hagerstrom [carlh] 20-Aug-1998
  11. Revision History:
  12. --*/
  13. #ifndef _RSCLN2_H
  14. #define _RSCLN2_H
  15. #include <stdafx.h>
  16. #define MAX_VOLUME_NAME 64
  17. #define MAX_FS_NAME 16
  18. #define MAX_DOS_NAME 4
  19. class CRsClnVolume
  20. {
  21. public:
  22. CRsClnVolume( CRsClnServer* pServer, WCHAR* StickyName );
  23. ~CRsClnVolume();
  24. HRESULT VolumeHasRsData( BOOL* );
  25. CString GetBestName( );
  26. HRESULT RemoveRsDataFromVolume( );
  27. HANDLE GetHandle( );
  28. CString GetStickyName( );
  29. private:
  30. HRESULT GetVolumeInfo( );
  31. HRESULT FirstRsReparsePoint(LONGLONG*, BOOL*);
  32. HRESULT NextRsReparsePoint(LONGLONG*, BOOL*);
  33. WCHAR m_fsName[MAX_FS_NAME];
  34. WCHAR m_bestName[MAX_STICKY_NAME];
  35. WCHAR m_volumeName[MAX_VOLUME_NAME];
  36. WCHAR m_dosName[MAX_DOS_NAME];
  37. CString m_StickyName;
  38. DWORD m_fsFlags;
  39. HANDLE m_hRpi;
  40. HANDLE m_hVolume;
  41. CRsClnServer* m_pServer;
  42. };
  43. class CRsClnFile
  44. {
  45. public:
  46. CRsClnFile( CRsClnVolume* pVolume, LONGLONG FileID );
  47. ~CRsClnFile();
  48. HRESULT RemoveReparsePointAndFile();
  49. CString GetFileName( );
  50. HRESULT ClearReadOnly( );
  51. HRESULT RestoreAttributes( );
  52. private:
  53. HRESULT GetFileInfo( LONGLONG FileID );
  54. CString m_FileName;
  55. CString m_FullPath;
  56. CRsClnVolume* m_pVolume;
  57. UCHAR m_ReparseData[ sizeof(REPARSE_DATA_BUFFER) + sizeof(RP_DATA) ];
  58. PREPARSE_DATA_BUFFER m_pReparseData;
  59. PRP_DATA m_pHsmData;
  60. FILE_BASIC_INFORMATION m_BasicInfo;
  61. };
  62. #endif // _RSCLN2_H