summaryrefslogtreecommitdiff
path: root/Common/Format.h
diff options
context:
space:
mode:
authorJedidiah Barber <contact@jedbarber.id.au>2021-07-14 11:27:03 +1200
committerJedidiah Barber <contact@jedbarber.id.au>2021-07-14 11:27:03 +1200
commit3cb7fdea950dd2d0377f0d9ad8a88fcb7c48b842 (patch)
treecedbfc08a6bf0bd8cb6ec6c8d8dd94a4e715439b /Common/Format.h
Initial mirror commitHEADmaster
Diffstat (limited to 'Common/Format.h')
-rw-r--r--Common/Format.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/Common/Format.h b/Common/Format.h
new file mode 100644
index 0000000..b971613
--- /dev/null
+++ b/Common/Format.h
@@ -0,0 +1,68 @@
+/*
+ Legal Notice: Some portions of the source code contained in this file were
+ derived from the source code of Encryption for the Masses 2.02a, which is
+ Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License
+ Agreement for Encryption for the Masses'. Modifications and additions to
+ the original source code (contained in this file) and all other portions
+ of this file are Copyright (c) 2003-2010 TrueCrypt Developers Association
+ and are governed by the TrueCrypt License 3.0 the full text of which is
+ contained in the file License.txt included in TrueCrypt binary and source
+ code distribution packages. */
+
+#ifndef TC_HEADER_Format
+#define TC_HEADER_Format
+
+#include "Password.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// FMIFS
+typedef BOOLEAN (__stdcall *PFMIFSCALLBACK)( int command, DWORD subCommand, PVOID parameter );
+typedef VOID (__stdcall *PFORMATEX)( PWCHAR DriveRoot, DWORD MediaFlag, PWCHAR Format, PWCHAR Label, BOOL QuickFormat, DWORD ClusterSize, PFMIFSCALLBACK Callback );
+
+typedef struct
+{
+ BOOL bDevice;
+ BOOL hiddenVol;
+ char *volumePath;
+ unsigned __int64 size;
+ unsigned __int64 hiddenVolHostSize;
+ int ea;
+ int pkcs5;
+ uint32 headerFlags;
+ int fileSystem;
+ int clusterSize;
+ BOOL sparseFileSwitch;
+ BOOL quickFormat;
+ int sectorSize;
+ int *realClusterSize;
+ Password *password;
+ HWND hwndDlg;
+}
+FORMAT_VOL_PARAMETERS;
+
+#define FMIFS_DONE 0xB
+#define FMIFS_HARDDISK 0xC
+
+extern int FormatWriteBufferSize;
+
+int TCFormatVolume (volatile FORMAT_VOL_PARAMETERS *volParams);
+BOOL FormatNtfs (int driveNo, int clusterSize);
+uint64 GetVolumeDataAreaSize (BOOL hiddenVolume, uint64 volumeSize);
+int FormatNoFs (unsigned __int64 startSector, __int64 num_sectors, void *dev, PCRYPTO_INFO cryptoInfo, BOOL quickFormat);
+BOOL WriteSector ( void *dev , char *sector , char *write_buf , int *write_buf_cnt , __int64 *nSecNo , PCRYPTO_INFO cryptoInfo );
+BOOL FlushFormatWriteBuffer (void *dev, char *write_buf, int *write_buf_cnt, __int64 *nSecNo, PCRYPTO_INFO cryptoInfo);
+static BOOL StartFormatWriteThread ();
+static void StopFormatWriteThread ();
+
+#define FILESYS_NONE 0
+#define FILESYS_FAT 1
+#define FILESYS_NTFS 2
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // TC_HEADER_Format