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.

627 lines
18 KiB

  1. /*++
  2. Copyright (c) Microsoft Corporation. All rights reserved.
  3. Module Name:
  4. fmifs.h
  5. Abstract:
  6. This header file contains the specification of the interface
  7. between the file manager and fmifs.dll for the purposes of
  8. accomplishing IFS functions.
  9. Author:
  10. Norbert P. Kusters (norbertk) 6-Mar-92
  11. --*/
  12. #if !defined( _FMIFS_DEFN_ )
  13. #define _FMIFS_DEFN_
  14. typedef LONG *PNTSTATUS;
  15. //
  16. // These are the defines for 'PacketType'.
  17. // Revisions: 02/03/98: Dave Sheldon - Added FmIfsNoMediaInDevice
  18. //
  19. typedef enum _FMIFS_PACKET_TYPE {
  20. FmIfsPercentCompleted = 0,
  21. FmIfsFormatReport = 1,
  22. FmIfsInsertDisk = 2,
  23. FmIfsIncompatibleFileSystem = 3,
  24. FmIfsFormattingDestination = 4,
  25. FmIfsIncompatibleMedia = 5,
  26. FmIfsAccessDenied = 6,
  27. FmIfsMediaWriteProtected = 7,
  28. FmIfsCantLock = 8,
  29. FmIfsCantQuickFormat = 9,
  30. FmIfsIoError = 10,
  31. FmIfsFinished = 11,
  32. FmIfsBadLabel = 12,
  33. FmIfsCheckOnReboot = 13,
  34. FmIfsTextMessage = 14,
  35. FmIfsHiddenStatus = 15,
  36. FmIfsClusterSizeTooSmall = 16,
  37. FmIfsClusterSizeTooBig = 17,
  38. FmIfsVolumeTooSmall = 18,
  39. FmIfsVolumeTooBig = 19,
  40. FmIfsNoMediaInDevice = 20,
  41. FmIfsClustersCountBeyond32bits = 21,
  42. FmIfsCantChkMultiVolumeOfSameFS = 22,
  43. FmIfsFormatFatUsing64KCluster = 23,
  44. FmIfsDeviceOffLine = 24
  45. } FMIFS_PACKET_TYPE, *PFMIFS_PACKET_TYPE;
  46. typedef struct _FMIFS_PERCENT_COMPLETE_INFORMATION {
  47. ULONG PercentCompleted;
  48. } FMIFS_PERCENT_COMPLETE_INFORMATION, *PFMIFS_PERCENT_COMPLETE_INFORMATION;
  49. //
  50. // These couple of bits are used in the ValuesInMB field of the structure
  51. // FMIFS_FORMAT_REPORT_INFORMATION. When set, the corresponding
  52. // ULONG value becomes in units of megabytes. If not set, the corresponding
  53. // ULONG value is in units of kilobytes.
  54. //
  55. #define TOTAL_DISK_SPACE_IN_MB 1
  56. #define BYTES_AVAILABLE_IN_MB 2
  57. typedef struct _FMIFS_FORMAT_REPORT_INFORMATION {
  58. ULONG KiloBytesTotalDiskSpace;
  59. ULONG KiloBytesAvailable;
  60. ULONG ValuesInMB;
  61. } FMIFS_FORMAT_REPORT_INFORMATION, *PFMIFS_FORMAT_REPORT_INFORMATION;
  62. // The packet for FmIfsDblspaceCreated is a Unicode string
  63. // giving the name of the Compressed Volume File; it is not
  64. // necessarily zero-terminated.
  65. //
  66. #define DISK_TYPE_GENERIC 0
  67. #define DISK_TYPE_SOURCE 1
  68. #define DISK_TYPE_TARGET 2
  69. #define DISK_TYPE_SOURCE_AND_TARGET 3
  70. typedef struct _FMIFS_INSERT_DISK_INFORMATION {
  71. ULONG DiskType;
  72. } FMIFS_INSERT_DISK_INFORMATION, *PFMIFS_INSERT_DISK_INFORMATION;
  73. typedef struct _FMIFS_IO_ERROR_INFORMATION {
  74. ULONG DiskType;
  75. ULONG Head;
  76. ULONG Track;
  77. } FMIFS_IO_ERROR_INFORMATION, *PFMIFS_IO_ERROR_INFORMATION;
  78. typedef struct _FMIFS_FINISHED_INFORMATION {
  79. BOOLEAN Success;
  80. } FMIFS_FINISHED_INFORMATION, *PFMIFS_FINISHED_INFORMATION;
  81. typedef struct _FMIFS_CHECKONREBOOT_INFORMATION {
  82. OUT BOOLEAN QueryResult; // TRUE for "yes", FALSE for "no"
  83. } FMIFS_CHECKONREBOOT_INFORMATION, *PFMIFS_CHECKONREBOOT_INFORMATION;
  84. typedef enum _TEXT_MESSAGE_TYPE {
  85. MESSAGE_TYPE_PROGRESS,
  86. MESSAGE_TYPE_RESULTS,
  87. MESSAGE_TYPE_FINAL
  88. } TEXT_MESSAGE_TYPE, *PTEXT_MESSAGE_TYPE;
  89. typedef struct _FMIFS_TEXT_MESSAGE {
  90. IN TEXT_MESSAGE_TYPE MessageType;
  91. IN PSTR Message;
  92. } FMIFS_TEXT_MESSAGE, *PFMIFS_TEXT_MESSAGE;
  93. #define FMIFS_SONY_MS_MASK 0x00000001 // mask for all types of memory stick
  94. #define FMIFS_SONY_MS 0x00000001 // device is a memory stick
  95. #define FMIFS_SONY_MS_FMT_CMD_CAPABLE 0x00000010 // reader supports fmt cmd
  96. #define FMIFS_SONY_MS_PROGRESS_INDICATOR_CAPABLE 0x00000020 // reader supports progress indicator
  97. #define FMIFS_NTFS_NOT_SUPPORTED 0x00000040 // ntfs should not be used on this device
  98. typedef struct _FMIFS_DEVICE_INFORMATION {
  99. ULONG Flags;
  100. } FMIFS_DEVICE_INFORMATION, *PFMIFS_DEVICE_INFORMATION;
  101. //
  102. // This is a list of supported floppy media types for format.
  103. //
  104. typedef enum _FMIFS_MEDIA_TYPE {
  105. FmMediaUnknown,
  106. FmMediaF5_160_512, // 5.25", 160KB, 512 bytes/sector
  107. FmMediaF5_180_512, // 5.25", 180KB, 512 bytes/sector
  108. FmMediaF5_320_512, // 5.25", 320KB, 512 bytes/sector
  109. FmMediaF5_320_1024, // 5.25", 320KB, 1024 bytes/sector
  110. FmMediaF5_360_512, // 5.25", 360KB, 512 bytes/sector
  111. FmMediaF3_720_512, // 3.5", 720KB, 512 bytes/sector
  112. FmMediaF5_1Pt2_512, // 5.25", 1.2MB, 512 bytes/sector
  113. FmMediaF3_1Pt44_512, // 3.5", 1.44MB, 512 bytes/sector
  114. FmMediaF3_2Pt88_512, // 3.5", 2.88MB, 512 bytes/sector
  115. FmMediaF3_20Pt8_512, // 3.5", 20.8MB, 512 bytes/sector
  116. FmMediaRemovable, // Removable media other than floppy
  117. FmMediaFixed,
  118. FmMediaF3_120M_512, // 3.5", 120M Floppy
  119. // FMR Sep.8.1994 SFT YAM
  120. // FMR Jul.14.1994 SFT KMR
  121. FmMediaF3_640_512, // 3.5" , 640KB, 512 bytes/sector
  122. FmMediaF5_640_512, // 5.25", 640KB, 512 bytes/sector
  123. FmMediaF5_720_512, // 5.25", 720KB, 512 bytes/sector
  124. // FMR Sep.8.1994 SFT YAM
  125. // FMR Jul.14.1994 SFT KMR
  126. FmMediaF3_1Pt2_512, // 3.5" , 1.2Mb, 512 bytes/sector
  127. // FMR Sep.8.1994 SFT YAM
  128. // FMR Jul.14.1994 SFT KMR
  129. FmMediaF3_1Pt23_1024, // 3.5" , 1.23Mb, 1024 bytes/sector
  130. FmMediaF5_1Pt23_1024, // 5.25", 1.23MB, 1024 bytes/sector
  131. FmMediaF3_128Mb_512, // 3.5" , 128MB, 512 bytes/sector 3.5"MO
  132. FmMediaF3_230Mb_512, // 3.5" , 230MB, 512 bytes/sector 3.5"MO
  133. FmMediaF3_200Mb_512, // 3.5" , 200MB, 512 bytes/sector HiFD (200MB Floppy)
  134. FmMediaF3_240Mb_512, // 3.5" , 240MB, 512 bytes/sector HiFD (240MB Floppy)
  135. FmMediaEndOfData // Total data count.
  136. } FMIFS_MEDIA_TYPE, *PFMIFS_MEDIA_TYPE;
  137. //
  138. // The structure below defines information to be passed into ChkdskEx.
  139. // When new fields are added, the version number will have to be upgraded
  140. // so that only new code will reference those new fields.
  141. //
  142. typedef struct {
  143. UCHAR Major; // initial version is 1.0
  144. UCHAR Minor;
  145. ULONG Flags;
  146. } FMIFS_CHKDSKEX_PARAM, *PFMIFS_CHKDSKEX_PARAM;
  147. //
  148. // Internal definitions for Flags field in FMIFS_CHKDSKEX_PARAM
  149. //
  150. #define FMIFS_CHKDSK_RECOVER_FREE_SPACE 0x00000002UL
  151. #define FMIFS_CHKDSK_RECOVER_ALLOC_SPACE 0x00000004UL
  152. //
  153. // External definitions for Flags field in FMIFS_CHKDSKEX_PARAM
  154. //
  155. // FMIFS_CHKDSK_VERBOSE
  156. // - For FAT, chkdsk will print every filename being processed
  157. // - For NTFS, chkdsk will print clean up messages
  158. // FMIFS_CHKDSK_RECOVER
  159. // - Perform sector checking on free and allocated space
  160. // FMIFS_CHKDSK_EXTEND
  161. // - For NTFS, chkdsk will extend a volume
  162. // FMIFS_CHKDSK_DOWNGRADE (for NT5 or later but obsolete anyway)
  163. // - For NTFS, this downgrade a volume from most recent NTFS version
  164. // FMIFS_CHKDSK_ENABLE_UPGRADE (for NT5 or later but obsolete anyway)
  165. // - For NTFS, this upgrades a volume to most recent NTFS version
  166. // FMIFS_CHKDSK_CHECK_IF_DIRTY
  167. // - Perform consistency check only if the volume is dirty
  168. // FMIFS_CHKDSK_FORCE (for NT5 or later)
  169. // - Forces the volume to dismount first if necessary
  170. // FMIFS_CHKDSK_SKIP_INDEX_SCAN
  171. // - Skip the scanning of each index entry
  172. // FMIFS_CHKDSK_SKIP_CYCLE_SCAN
  173. // - Skip the checking of cycles within the directory tree
  174. #define FMIFS_CHKDSK_VERBOSE 0x00000001UL
  175. #define FMIFS_CHKDSK_RECOVER (FMIFS_CHKDSK_RECOVER_FREE_SPACE | \
  176. FMIFS_CHKDSK_RECOVER_ALLOC_SPACE)
  177. #define FMIFS_CHKDSK_EXTEND 0x00000008UL
  178. #define FMIFS_CHKDSK_DOWNGRADE 0x00000010UL
  179. #define FMIFS_CHKDSK_ENABLE_UPGRADE 0x00000020UL
  180. #define FMIFS_CHKDSK_CHECK_IF_DIRTY 0x00000080UL
  181. #define FMIFS_CHKDSK_FORCE 0x00000100UL
  182. #define FMIFS_CHKDSK_SKIP_INDEX_SCAN 0x00000200UL
  183. #define FMIFS_CHKDSK_SKIP_CYCLE_SCAN 0x00000400UL
  184. //
  185. // The structure below defines information to be passed into FormatEx2.
  186. // When new fields are added, the version number will have to be upgraded
  187. // so that only new code will reference those new fields.
  188. //
  189. typedef struct {
  190. UCHAR Major; // initial version is 1.0
  191. UCHAR Minor;
  192. ULONG Flags;
  193. PWSTR LabelString; // supplies the volume's label
  194. ULONG ClusterSize; // supplies the cluster size for the volume
  195. } FMIFS_FORMATEX2_PARAM, *PFMIFS_FORMATEX2_PARAM;
  196. //
  197. // External definitions for Flags field in FMIFS_FORMATEX2_PARAM
  198. //
  199. // FMIFS_FORMAT_QUICK
  200. // - Performs a quick format
  201. // FMIFS_FORMAT_BACKWARD_COMPATIBLE
  202. // - Formats a volume to be backward compatible to an older version of NTFS volume
  203. // FMIFS_FORMAT_FORCE
  204. // - Forces the volume to dismount first if necessary
  205. #define FMIFS_FORMAT_QUICK 0x00000001UL
  206. #define FMIFS_FORMAT_BACKWARD_COMPATIBLE 0x00000002UL
  207. #define FMIFS_FORMAT_FORCE 0x00000004UL
  208. //
  209. // Maximum length of file system format name string including version number in it
  210. // (e.g. FAT32, NTFS 5.0, NTFS 4.0, FAT, etc)
  211. //
  212. #define MAX_FILE_SYSTEM_FORMAT_VERSION_NAME_LEN 16
  213. //
  214. // Maximum length of file system name string (e.g. NTFS, FAT32, FAT, etc)
  215. //
  216. #define MAX_FILE_SYSTEM_FORMAT_NAME_LEN 9
  217. //
  218. // Function types/interfaces.
  219. //
  220. typedef BOOLEAN
  221. (*FMIFS_CALLBACK)(
  222. IN FMIFS_PACKET_TYPE PacketType,
  223. IN ULONG PacketLength,
  224. IN PVOID PacketData
  225. );
  226. typedef
  227. VOID
  228. (*PFMIFS_FORMAT_ROUTINE)(
  229. IN PWSTR DriveName,
  230. IN FMIFS_MEDIA_TYPE MediaType,
  231. IN PWSTR FileSystemName,
  232. IN PWSTR Label,
  233. IN BOOLEAN Quick,
  234. IN FMIFS_CALLBACK Callback
  235. );
  236. typedef
  237. VOID
  238. (*PFMIFS_FORMATEX_ROUTINE)(
  239. IN PWSTR DriveName,
  240. IN FMIFS_MEDIA_TYPE MediaType,
  241. IN PWSTR FileSystemName,
  242. IN PWSTR Label,
  243. IN BOOLEAN Quick,
  244. IN ULONG ClusterSize,
  245. IN FMIFS_CALLBACK Callback
  246. );
  247. typedef
  248. VOID
  249. (*PFMIFS_FORMATEX2_ROUTINE)(
  250. IN PWSTR DriveName,
  251. IN FMIFS_MEDIA_TYPE MediaType,
  252. IN PWSTR FileSystemName,
  253. IN PFMIFS_FORMATEX2_PARAM Param,
  254. IN FMIFS_CALLBACK Callback
  255. );
  256. typedef
  257. BOOLEAN
  258. (*PFMIFS_ENABLECOMP_ROUTINE)(
  259. IN PWSTR DriveName,
  260. IN USHORT CompressionFormat
  261. );
  262. typedef
  263. VOID
  264. (*PFMIFS_CHKDSK_ROUTINE)(
  265. IN PWSTR DriveName,
  266. IN PWSTR FileSystemName,
  267. IN BOOLEAN Fix,
  268. IN BOOLEAN Verbose,
  269. IN BOOLEAN OnlyIfDirty,
  270. IN BOOLEAN Recover,
  271. IN PWSTR PathToCheck,
  272. IN BOOLEAN Extend,
  273. IN FMIFS_CALLBACK Callback
  274. );
  275. typedef
  276. VOID
  277. (*PFMIFS_CHKDSKEX_ROUTINE)(
  278. IN PWSTR DriveName,
  279. IN PWSTR FileSystemName,
  280. IN BOOLEAN Fix,
  281. IN PFMIFS_CHKDSKEX_PARAM Param,
  282. IN FMIFS_CALLBACK Callback
  283. );
  284. typedef
  285. VOID
  286. (*PFMIFS_EXTEND_ROUTINE)(
  287. IN PWSTR DriveName,
  288. IN BOOLEAN Verify,
  289. IN FMIFS_CALLBACK Callback
  290. );
  291. typedef
  292. VOID
  293. (*PFMIFS_DISKCOPY_ROUTINE)(
  294. IN PWSTR SourceDrive,
  295. IN PWSTR DestDrive,
  296. IN BOOLEAN Verify,
  297. IN FMIFS_CALLBACK Callback
  298. );
  299. typedef
  300. BOOLEAN
  301. (*PFMIFS_SETLABEL_ROUTINE)(
  302. IN PWSTR DriveName,
  303. IN PWSTR Label
  304. );
  305. typedef
  306. BOOLEAN
  307. (*PFMIFS_QSUPMEDIA_ROUTINE)(
  308. IN PWSTR DriveName,
  309. OUT PFMIFS_MEDIA_TYPE MediaTypeArray OPTIONAL,
  310. IN ULONG NumberOfArrayEntries,
  311. OUT PULONG NumberOfMediaTypes
  312. );
  313. typedef
  314. BOOLEAN
  315. (*PFMIFS_QUERY_DEVICE_INFO_BY_HANDLE_ROUTINE)(
  316. IN HANDLE DriveHandle,
  317. OUT PFMIFS_DEVICE_INFORMATION DevInfo,
  318. IN ULONG DevInfoSize
  319. );
  320. typedef
  321. BOOLEAN
  322. (*PFMIFS_QUERY_DEVICE_INFO_ROUTINE)(
  323. IN PWSTR DriveName,
  324. OUT PFMIFS_DEVICE_INFORMATION DevInfo,
  325. IN ULONG DevInfoSize
  326. );
  327. typedef
  328. VOID
  329. (*PFMIFS_DOUBLESPACE_CREATE_ROUTINE)(
  330. IN PWSTR HostDriveName,
  331. IN ULONG Size,
  332. IN PWSTR Label,
  333. IN PWSTR NewDriveName,
  334. IN FMIFS_CALLBACK Callback
  335. );
  336. #if defined( DBLSPACE_ENABLED )
  337. typedef
  338. VOID
  339. (*PFMIFS_DOUBLESPACE_DELETE_ROUTINE)(
  340. IN PWSTR DblspaceDriveName,
  341. IN FMIFS_CALLBACK Callback
  342. );
  343. typedef
  344. VOID
  345. (*PFMIFS_DOUBLESPACE_MOUNT_ROUTINE)(
  346. IN PWSTR HostDriveName,
  347. IN PWSTR CvfName,
  348. IN PWSTR NewDriveName,
  349. IN FMIFS_CALLBACK Callback
  350. );
  351. typedef
  352. VOID
  353. (*PFMIFS_DOUBLESPACE_DISMOUNT_ROUTINE)(
  354. IN PWSTR DblspaceDriveName,
  355. IN FMIFS_CALLBACK Callback
  356. );
  357. typedef
  358. BOOLEAN
  359. (*PFMIFS_DOUBLESPACE_QUERY_INFO_ROUTINE)(
  360. IN PWSTR DosDriveName,
  361. OUT PBOOLEAN IsRemovable,
  362. OUT PBOOLEAN IsFloppy,
  363. OUT PBOOLEAN IsCompressed,
  364. OUT PBOOLEAN Error,
  365. OUT PWSTR NtDriveName,
  366. IN ULONG MaxNtDriveNameLength,
  367. OUT PWSTR CvfFileName,
  368. IN ULONG MaxCvfFileNameLength,
  369. OUT PWSTR HostDriveName,
  370. IN ULONG MaxHostDriveNameLength
  371. );
  372. typedef
  373. BOOLEAN
  374. (*PFMIFS_DOUBLESPACE_SET_AUTMOUNT_ROUTINE)(
  375. IN BOOLEAN EnableAutomount
  376. );
  377. #endif // DBLSPACE_ENABLED
  378. FMIFS_MEDIA_TYPE
  379. ComputeFmMediaType(
  380. IN MEDIA_TYPE MediaType
  381. );
  382. VOID
  383. Format(
  384. IN PWSTR DriveName,
  385. IN FMIFS_MEDIA_TYPE MediaType,
  386. IN PWSTR FileSystemName,
  387. IN PWSTR Label,
  388. IN BOOLEAN Quick,
  389. IN FMIFS_CALLBACK Callback
  390. );
  391. VOID
  392. FormatEx(
  393. IN PWSTR DriveName,
  394. IN FMIFS_MEDIA_TYPE MediaType,
  395. IN PWSTR FileSystemName,
  396. IN PWSTR Label,
  397. IN BOOLEAN Quick,
  398. IN ULONG ClusterSize,
  399. IN FMIFS_CALLBACK Callback
  400. );
  401. VOID
  402. FormatEx2(
  403. IN PWSTR DriveName,
  404. IN FMIFS_MEDIA_TYPE MediaType,
  405. IN PWSTR FileSystemName,
  406. IN PFMIFS_FORMATEX2_PARAM Param,
  407. IN FMIFS_CALLBACK Callback
  408. );
  409. BOOLEAN
  410. EnableVolumeCompression(
  411. IN PWSTR DriveName,
  412. IN USHORT CompressionFormat
  413. );
  414. VOID
  415. Chkdsk(
  416. IN PWSTR DriveName,
  417. IN PWSTR FileSystemName,
  418. IN BOOLEAN Fix,
  419. IN BOOLEAN Verbose,
  420. IN BOOLEAN OnlyIfDirty,
  421. IN BOOLEAN Recover,
  422. IN PWSTR PathToCheck,
  423. IN BOOLEAN Extend,
  424. IN FMIFS_CALLBACK Callback
  425. );
  426. VOID
  427. ChkdskEx(
  428. IN PWSTR DriveName,
  429. IN PWSTR FileSystemName,
  430. IN BOOLEAN Fix,
  431. IN PFMIFS_CHKDSKEX_PARAM Param,
  432. IN FMIFS_CALLBACK Callback
  433. );
  434. VOID
  435. Extend(
  436. IN PWSTR DriveName,
  437. IN BOOLEAN Verify,
  438. IN FMIFS_CALLBACK Callback
  439. );
  440. VOID
  441. DiskCopy(
  442. IN PWSTR SourceDrive,
  443. IN PWSTR DestDrive,
  444. IN BOOLEAN Verify,
  445. IN FMIFS_CALLBACK Callback
  446. );
  447. BOOLEAN
  448. SetLabel(
  449. IN PWSTR DriveName,
  450. IN PWSTR Label
  451. );
  452. BOOLEAN
  453. QuerySupportedMedia(
  454. IN PWSTR DriveName,
  455. OUT PFMIFS_MEDIA_TYPE MediaTypeArray OPTIONAL,
  456. IN ULONG NumberOfArrayEntries,
  457. OUT PULONG NumberOfMediaTypes
  458. );
  459. BOOLEAN
  460. QueryAvailableFileSystemFormat(
  461. IN ULONG Index,
  462. OUT PWSTR FileSystemName,
  463. OUT PUCHAR MajorVersion,
  464. OUT PUCHAR MinorVersion,
  465. OUT PBOOLEAN Latest
  466. );
  467. BOOLEAN
  468. QueryFileSystemName(
  469. IN PWSTR DriveName,
  470. OUT PWSTR FileSystemName,
  471. OUT PUCHAR MajorVersion,
  472. OUT PUCHAR MinorVersion,
  473. OUT PNTSTATUS ErrorCode
  474. );
  475. BOOLEAN
  476. QueryLatestFileSystemVersion(
  477. IN PWSTR FileSystemName,
  478. OUT PUCHAR MajorVersion,
  479. OUT PUCHAR MinorVersion
  480. );
  481. BOOLEAN
  482. QueryDeviceInformation(
  483. IN PWSTR DriveName,
  484. OUT PFMIFS_DEVICE_INFORMATION DevInfo,
  485. IN ULONG DevInfoSize
  486. );
  487. BOOLEAN
  488. QueryDeviceInformationByHandle(
  489. IN HANDLE DriveHandle,
  490. OUT PFMIFS_DEVICE_INFORMATION DevInfo,
  491. IN ULONG DevInfoSize
  492. );
  493. VOID
  494. DoubleSpaceCreate(
  495. IN PWSTR HostDriveName,
  496. IN ULONG Size,
  497. IN PWSTR Label,
  498. IN PWSTR NewDriveName,
  499. IN FMIFS_CALLBACK Callback
  500. );
  501. #if defined( DBLSPACE_ENABLED )
  502. VOID
  503. DoubleSpaceDelete(
  504. IN PWSTR DblspaceDriveName,
  505. IN FMIFS_CALLBACK Callback
  506. );
  507. VOID
  508. DoubleSpaceMount(
  509. IN PWSTR HostDriveName,
  510. IN PWSTR CvfName,
  511. IN PWSTR NewDriveName,
  512. IN FMIFS_CALLBACK Callback
  513. );
  514. VOID
  515. DoubleSpaceDismount(
  516. IN PWSTR DblspaceDriveName,
  517. IN FMIFS_CALLBACK Callback
  518. );
  519. // Miscellaneous prototypes:
  520. //
  521. BOOLEAN
  522. FmifsQueryDriveInformation(
  523. IN PWSTR DosDriveName,
  524. OUT PBOOLEAN IsRemovable,
  525. OUT PBOOLEAN IsFloppy,
  526. OUT PBOOLEAN IsCompressed,
  527. OUT PBOOLEAN Error,
  528. OUT PWSTR NtDriveName,
  529. IN ULONG MaxNtDriveNameLength,
  530. OUT PWSTR CvfFileName,
  531. IN ULONG MaxCvfFileNameLength,
  532. OUT PWSTR HostDriveName,
  533. IN ULONG MaxHostDriveNameLength
  534. );
  535. BOOLEAN
  536. FmifsSetAutomount(
  537. IN BOOLEAN EnableAutomount
  538. );
  539. #endif
  540. #endif // _FMIFS_DEFN_