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.

329 lines
5.6 KiB

  1. /*++
  2. Copyright (c) 1993 Microsoft Corporation
  3. Module Name:
  4. spppart3.h
  5. Abstract:
  6. Private header file for partitioning engine and UI.
  7. Author:
  8. Matt Holle (matth) 1-December-1999
  9. Revision History:
  10. Minor clean up - Vijay Jayaseelan (vijayj)
  11. --*/
  12. #ifndef _SPPART3_H_
  13. #define _SPPART3_H_
  14. //
  15. // Macros.
  16. //
  17. //
  18. // Macro to determine if the partition is OEM partition.
  19. //
  20. #define IS_OEM_PARTITION_GPT(PartitionAttributes) ((PartitionAttributes) & GPT_ATTRIBUTE_PLATFORM_REQUIRED)
  21. //
  22. // Data structures.
  23. //
  24. //
  25. // Function prototypes.
  26. //
  27. extern VOID
  28. SpPtMenuCallback(
  29. IN ULONG_PTR UserData
  30. );
  31. extern
  32. BOOLEAN
  33. SpPtIsNotReservedPartition(
  34. IN ULONG_PTR UserData,
  35. IN ULONG Key
  36. );
  37. NTSTATUS
  38. SpPtnInitializeDiskDrive(
  39. IN ULONG DiskId
  40. );
  41. extern NTSTATUS
  42. SpPtnInitializeDiskDrives(
  43. VOID
  44. );
  45. extern NTSTATUS
  46. SpPtnInitializeDiskAreas(
  47. IN ULONG DiskNumber
  48. );
  49. extern NTSTATUS
  50. SpPtnSortDiskAreas(
  51. IN ULONG DiskNumber
  52. );
  53. extern NTSTATUS
  54. SpPtnFillDiskFreeSpaceAreas(
  55. IN ULONG DiskNumber
  56. );
  57. extern NTSTATUS
  58. SpPtnPrepareDisks(
  59. IN PVOID SifHandle,
  60. OUT PDISK_REGION *InstallRegion,
  61. OUT PDISK_REGION *SystemPartitionRegion,
  62. IN PWSTR SetupSourceDevicePath,
  63. IN PWSTR DirectoryOnSetupSource,
  64. IN BOOLEAN RemoteBootRepartition
  65. );
  66. extern BOOLEAN
  67. SpPtnGenerateDiskMenu(
  68. IN PVOID Menu,
  69. IN ULONG DiskNumber,
  70. OUT PDISK_REGION *FirstDiskRegion
  71. );
  72. PDISK_REGION
  73. SpPtnValidSystemPartition(
  74. VOID
  75. );
  76. PDISK_REGION
  77. SpPtnValidSystemPartitionArc(
  78. IN PVOID SifHandle,
  79. IN PWSTR SetupSourceDevicePath,
  80. IN PWSTR DirectoryOnSetupSource,
  81. IN BOOLEAN SysPartNeeded
  82. );
  83. BOOLEAN
  84. SpPtnValidSystemPartitionArcRegion(
  85. IN PVOID SifHandle,
  86. IN PDISK_REGION Region
  87. );
  88. NTSTATUS
  89. SpPtnInitRegionFromDisk(
  90. IN ULONG DiskNumber,
  91. OUT PDISK_REGION Region
  92. );
  93. NTSTATUS
  94. SpPtnInitializeDiskStyle(
  95. IN ULONG DiskId,
  96. IN PARTITION_STYLE Style,
  97. IN PCREATE_DISK DiskInfo OPTIONAL
  98. );
  99. VOID
  100. SpPtnFreeDiskRegions(
  101. IN ULONG DiskId
  102. );
  103. NTSTATUS
  104. SpPtnMarkLogicalDrives(
  105. IN ULONG DiskId
  106. );
  107. BOOLEAN
  108. SpPtnDoCreate(
  109. IN PDISK_REGION pRegion,
  110. OUT PDISK_REGION *pActualRegion, OPTIONAL
  111. IN BOOLEAN ForNT,
  112. IN ULONGLONG DesiredMB OPTIONAL,
  113. IN PPARTITION_INFORMATION_EX PartInfo OPTIONAL,
  114. IN BOOLEAN ConfirmIt
  115. );
  116. BOOLEAN
  117. SpPtnDoDelete(
  118. IN PDISK_REGION pRegion,
  119. IN PWSTR RegionDescription,
  120. IN BOOLEAN ConfirmIt
  121. );
  122. ValidationValue
  123. SpPtnGetSizeCB(
  124. IN ULONG Key
  125. );
  126. ULONG
  127. SpPtnGetOrdinal(
  128. IN PDISK_REGION Region,
  129. IN PartitionOrdinalType OrdinalType
  130. );
  131. VOID
  132. SpPtnGetSectorLayoutInformation(
  133. IN PDISK_REGION Region,
  134. OUT PULONGLONG HiddenSectors,
  135. OUT PULONGLONG VolumeSectorCount
  136. );
  137. BOOLEAN
  138. SpPtnCreate(
  139. IN ULONG DiskNumber,
  140. IN ULONGLONG StartSector,
  141. IN ULONGLONG SizeInSectors,
  142. IN ULONGLONG SizeMB,
  143. IN BOOLEAN InExtended,
  144. IN BOOLEAN AlignToCylinder,
  145. IN PPARTITION_INFORMATION_EX PartInfo,
  146. OUT PDISK_REGION *ActualDiskRegion OPTIONAL
  147. );
  148. BOOLEAN
  149. SpPtnDelete(
  150. IN ULONG DiskNumber,
  151. IN ULONGLONG StartSector
  152. );
  153. BOOL
  154. SpPtnIsSystemPartitionRecognizable(
  155. VOID
  156. );
  157. VOID
  158. SpPtnMakeRegionActive(
  159. IN PDISK_REGION Region
  160. );
  161. NTSTATUS
  162. SpPtnCommitChanges(
  163. IN ULONG DiskNumber,
  164. OUT PBOOLEAN AnyChanges
  165. );
  166. NTSTATUS
  167. SpMasterBootCode(
  168. IN ULONG DiskNumber,
  169. IN HANDLE Partition0Handle,
  170. OUT PULONG NewNTFTSignature
  171. );
  172. BOOLEAN
  173. SpPtMakeDiskRaw(
  174. IN ULONG DiskNumber
  175. );
  176. NTSTATUS
  177. SpPtnUnlockDevice(
  178. IN PWSTR DeviceName
  179. );
  180. VOID
  181. SpPtnAssignOrdinals(
  182. IN ULONG DiskNumber
  183. );
  184. VOID
  185. SpPtnDeletePartitionsForRemoteBoot(
  186. PPARTITIONED_DISK pDisk,
  187. PDISK_REGION startRegion,
  188. PDISK_REGION endRegion,
  189. BOOLEAN Extended
  190. );
  191. VOID
  192. SpPtnLocateDiskSystemPartitions(
  193. IN ULONG DiskNumber
  194. );
  195. VOID
  196. SpPtnLocateSystemPartitions(
  197. VOID
  198. );
  199. BOOLEAN
  200. SpPtnIsDiskStyleChangeAllowed(
  201. IN ULONG DiskNumber
  202. );
  203. VOID
  204. SpPtnPromptForSysPart(
  205. IN PVOID SifHandle
  206. );
  207. NTSTATUS
  208. SpPtnMakeRegionArcSysPart(
  209. IN PDISK_REGION Region
  210. );
  211. ULONG
  212. SpPtnGetPartitionCountDisk(
  213. IN ULONG DiskId
  214. );
  215. ULONG
  216. SpPtnCountPartitionsByFSType(
  217. IN ULONG DiskId,
  218. IN FilesystemType FsType
  219. );
  220. BOOLEAN
  221. SpPtnIsDeleteAllowedForRegion(
  222. IN PDISK_REGION Region
  223. );
  224. PWSTR
  225. SpPtnGetPartitionName(
  226. IN PDISK_REGION Region,
  227. IN OUT PWSTR NameBuffer,
  228. IN ULONG NameBufferSize
  229. );
  230. NTSTATUS
  231. SpPtnGetGuidNameForPartition(
  232. IN PWSTR NtPartitionName,
  233. IN OUT PWSTR VolumeName
  234. );
  235. NTSTATUS
  236. SpPtnCreateESP(
  237. IN BOOLEAN PromptUser
  238. );
  239. NTSTATUS
  240. SpPtnInitializeGPTDisk(
  241. IN ULONG DiskNumber
  242. );
  243. BOOLEAN
  244. SpIsMSRPresentOnDisk(
  245. IN ULONG DiskNumber
  246. );
  247. NTSTATUS
  248. SpPtnInitializeGPTDisks(
  249. VOID
  250. );
  251. NTSTATUS
  252. SpPtnRepartitionGPTDisk(
  253. IN ULONG DiskId,
  254. IN ULONG MinimumFreeSpaceKB,
  255. OUT PDISK_REGION *RegionToInstall
  256. );
  257. BOOLEAN
  258. SpPtnIsDynamicDisk(
  259. IN ULONG DiskIndex
  260. );
  261. #endif // _SPPART3_H_