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.

167 lines
3.2 KiB

  1. /*++
  2. Copyright (c) 1990-2000 Microsoft Corporation
  3. Module Name:
  4. fatvol.hxx
  5. Abstract:
  6. This class implements FAT only VOLUME items.
  7. Author:
  8. Mark Shavlik (marks) 13-Feb-90
  9. --*/
  10. #if !defined(FATVOL)
  11. #define FATVOL
  12. #include "volume.hxx"
  13. #include "rfatsa.hxx"
  14. //
  15. // Forward references
  16. //
  17. DECLARE_CLASS( DP_DRIVE );
  18. DECLARE_CLASS( FAT_VOL );
  19. DECLARE_CLASS( MESSAGE );
  20. #if !defined( _SETUP_LOADER_ )
  21. class FAT_VOL : public VOL_LIODPDRV {
  22. public:
  23. DECLARE_CONSTRUCTOR( FAT_VOL );
  24. VIRTUAL
  25. ~FAT_VOL(
  26. );
  27. NONVIRTUAL
  28. FORMAT_ERROR_CODE
  29. Initialize(
  30. IN PCWSTRING NtDriveName,
  31. IN OUT PMESSAGE Message DEFAULT NULL,
  32. IN BOOLEAN ExclusiveWrite DEFAULT FALSE,
  33. IN BOOLEAN FormatMedia DEFAULT FALSE,
  34. IN MEDIA_TYPE MediaType DEFAULT Unknown,
  35. IN USHORT FormatType DEFAULT DP_DRIVE::NONE
  36. );
  37. //
  38. // Chkdsk's version of initialize.
  39. //
  40. NONVIRTUAL
  41. BOOLEAN
  42. Initialize(
  43. IN OUT PMESSAGE Message DEFAULT NULL,
  44. IN PCWSTRING NtDriveName DEFAULT NULL,
  45. IN BOOLEAN OnlyIfDirty DEFAULT FALSE,
  46. IN USHORT FormatType DEFAULT DP_DRIVE::NONE
  47. );
  48. NONVIRTUAL
  49. BOOLEAN
  50. IsFileContiguous(
  51. IN PCWSTRING FullPathFileName,
  52. IN OUT PMESSAGE Message DEFAULT NULL,
  53. OUT PULONG NumBlocks DEFAULT NULL
  54. );
  55. NONVIRTUAL
  56. BOOLEAN
  57. ContiguityReport(
  58. IN PCWSTRING DirectoryPath,
  59. IN PCDSTRING FilesToCheck,
  60. IN ULONG NumberOfFiles,
  61. IN OUT PMESSAGE Message
  62. );
  63. NONVIRTUAL
  64. PVOL_LIODPDRV
  65. QueryDupVolume(
  66. IN PCWSTRING NtDriveName,
  67. IN OUT PMESSAGE Message DEFAULT NULL,
  68. IN BOOLEAN ExclusiveWrite DEFAULT FALSE,
  69. IN BOOLEAN FormatMedia DEFAULT FALSE,
  70. IN MEDIA_TYPE MediaType DEFAULT Unknown
  71. ) CONST;
  72. private:
  73. NONVIRTUAL
  74. VOID
  75. Construct (
  76. );
  77. NONVIRTUAL
  78. VOID
  79. Destroy(
  80. );
  81. REAL_FAT_SA _fatsa;
  82. };
  83. #else // _SETUP_LOADER_ is defined
  84. class FAT_VOL : public VOL_LIODPDRV {
  85. public:
  86. DECLARE_CONSTRUCTOR( FAT_VOL );
  87. VIRTUAL
  88. ~FAT_VOL(
  89. );
  90. NONVIRTUAL
  91. BOOLEAN
  92. Initialize(
  93. IN ULONG DeviceHandle,
  94. IN USHORT FormatType
  95. );
  96. VIRTUAL
  97. ARC_STATUS
  98. MarkDirty(
  99. );
  100. VIRTUAL
  101. ARC_STATUS
  102. Flush(
  103. IN BOOLEAN JustHandle
  104. );
  105. private:
  106. NONVIRTUAL
  107. VOID
  108. Construct (
  109. );
  110. NONVIRTUAL
  111. VOID
  112. Destroy(
  113. );
  114. REAL_FAT_SA _fatsa;
  115. };
  116. #endif // _SETUP_LOADER_
  117. #endif