mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-12 19:38:26 -06:00
Windows: Enable selection of Quick Format for file containers. Separate Quick Format and Dynamic Volume options.
This commit is contained in:
@@ -154,7 +154,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
|||||||
BEGIN
|
BEGIN
|
||||||
COMBOBOX IDC_FILESYS,43,13,36,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
COMBOBOX IDC_FILESYS,43,13,36,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||||
COMBOBOX IDC_CLUSTERSIZE,112,13,42,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
COMBOBOX IDC_CLUSTERSIZE,112,13,42,90,CBS_DROPDOWNLIST | WS_TABSTOP
|
||||||
CONTROL "Quick Format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,163,11,60,18
|
CONTROL "Quick Format",IDC_QUICKFORMAT,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,163,9,60,8
|
||||||
CONTROL "",IDC_SHOW_KEYS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,214,38,9,8
|
CONTROL "",IDC_SHOW_KEYS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,214,38,9,8
|
||||||
PUSHBUTTON "Abort",IDC_ABORT_BUTTON,169,75,50,14
|
PUSHBUTTON "Abort",IDC_ABORT_BUTTON,169,75,50,14
|
||||||
RTEXT "Header Key: ",IDT_HEADER_KEY,2,47,54,8
|
RTEXT "Header Key: ",IDT_HEADER_KEY,2,47,54,8
|
||||||
@@ -178,6 +178,7 @@ BEGIN
|
|||||||
CONTROL "",IDC_RANDOM_BYTES,"Static",SS_SIMPLE | WS_GROUP,57,38,155,8,WS_EX_TRANSPARENT
|
CONTROL "",IDC_RANDOM_BYTES,"Static",SS_SIMPLE | WS_GROUP,57,38,155,8,WS_EX_TRANSPARENT
|
||||||
GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,0,153,224,18
|
GROUPBOX "Randomness Collected From Mouse Movements",IDT_ENTROPY_BAR,0,153,224,18
|
||||||
CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",WS_BORDER,11,162,202,6
|
CONTROL "",IDC_ENTROPY_BAR,"msctls_progress32",WS_BORDER,11,162,202,6
|
||||||
|
CONTROL "Dynamic",SPARSE_FILE,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,163,21,60,8
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_INTRO_PAGE_DLG DIALOGEX 0, 0, 226, 172
|
IDD_INTRO_PAGE_DLG DIALOGEX 0, 0, 226, 172
|
||||||
|
|||||||
@@ -145,6 +145,7 @@
|
|||||||
#define IDC_SHOW_PIM 1106
|
#define IDC_SHOW_PIM 1106
|
||||||
#define IDC_TB 1107
|
#define IDC_TB 1107
|
||||||
#define IDC_SKIP_RESCUE_VERIFICATION 1108
|
#define IDC_SKIP_RESCUE_VERIFICATION 1108
|
||||||
|
#define SPARSE_FILE 1109
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
@@ -153,7 +154,7 @@
|
|||||||
#define _APS_NO_MFC 1
|
#define _APS_NO_MFC 1
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 134
|
#define _APS_NEXT_RESOURCE_VALUE 134
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1109
|
#define _APS_NEXT_CONTROL_VALUE 1110
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -281,7 +281,8 @@ wchar_t outRandPoolDispBuffer [RANDPOOL_DISPLAY_SIZE];
|
|||||||
BOOL bDisplayPoolContents = TRUE;
|
BOOL bDisplayPoolContents = TRUE;
|
||||||
|
|
||||||
volatile BOOL bSparseFileSwitch = FALSE;
|
volatile BOOL bSparseFileSwitch = FALSE;
|
||||||
volatile BOOL quickFormat = FALSE; /* WARNING: Meaning of this variable depends on bSparseFileSwitch. If bSparseFileSwitch is TRUE, this variable represents the sparse file flag. */
|
volatile BOOL quickFormat = FALSE;
|
||||||
|
volatile BOOL dynamicFormat = FALSE; /* this variable represents the sparse file flag. */
|
||||||
volatile int fileSystem = FILESYS_NONE;
|
volatile int fileSystem = FILESYS_NONE;
|
||||||
volatile int clusterSize = 0;
|
volatile int clusterSize = 0;
|
||||||
|
|
||||||
@@ -2632,7 +2633,7 @@ static void __cdecl volTransformThreadFunction (void *hwndDlgArg)
|
|||||||
volParams->headerFlags = (CreatingHiddenSysVol() ? TC_HEADER_FLAG_ENCRYPTED_SYSTEM : 0);
|
volParams->headerFlags = (CreatingHiddenSysVol() ? TC_HEADER_FLAG_ENCRYPTED_SYSTEM : 0);
|
||||||
volParams->fileSystem = fileSystem;
|
volParams->fileSystem = fileSystem;
|
||||||
volParams->clusterSize = clusterSize;
|
volParams->clusterSize = clusterSize;
|
||||||
volParams->sparseFileSwitch = bSparseFileSwitch;
|
volParams->sparseFileSwitch = dynamicFormat;
|
||||||
volParams->quickFormat = quickFormat;
|
volParams->quickFormat = quickFormat;
|
||||||
volParams->sectorSize = GetFormatSectorSize();
|
volParams->sectorSize = GetFormatSectorSize();
|
||||||
volParams->realClusterSize = &realClusterSize;
|
volParams->realClusterSize = &realClusterSize;
|
||||||
@@ -2821,7 +2822,7 @@ static void __cdecl volTransformThreadFunction (void *hwndDlgArg)
|
|||||||
{
|
{
|
||||||
Info("FORMAT_FINISHED_INFO", hwndDlg);
|
Info("FORMAT_FINISHED_INFO", hwndDlg);
|
||||||
|
|
||||||
if (bSparseFileSwitch && quickFormat)
|
if (dynamicFormat)
|
||||||
Warning("SPARSE_FILE_SIZE_NOTE", hwndDlg);
|
Warning("SPARSE_FILE_SIZE_NOTE", hwndDlg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4934,18 +4935,23 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
if (bHiddenVol)
|
if (bHiddenVol)
|
||||||
{
|
{
|
||||||
quickFormat = !bHiddenVolHost;
|
quickFormat = !bHiddenVolHost;
|
||||||
|
dynamicFormat = FALSE;
|
||||||
bSparseFileSwitch = FALSE;
|
bSparseFileSwitch = FALSE;
|
||||||
|
|
||||||
|
SetCheckBox (hwndDlg, SPARSE_FILE, FALSE);
|
||||||
|
EnableWindow (GetDlgItem (hwndDlg, SPARSE_FILE), FALSE);
|
||||||
|
|
||||||
SetCheckBox (hwndDlg, IDC_QUICKFORMAT, quickFormat);
|
SetCheckBox (hwndDlg, IDC_QUICKFORMAT, quickFormat);
|
||||||
SetWindowTextW (GetDlgItem (hwndDlg, IDC_QUICKFORMAT), GetString ((bDevice || !bHiddenVolHost) ? "IDC_QUICKFORMAT" : "SPARSE_FILE"));
|
EnableWindow (GetDlgItem (hwndDlg, IDC_QUICKFORMAT), bHiddenVolHost);
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDC_QUICKFORMAT), bDevice && bHiddenVolHost);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (bDevice)
|
if (bDevice)
|
||||||
{
|
{
|
||||||
|
dynamicFormat = FALSE;
|
||||||
bSparseFileSwitch = FALSE;
|
bSparseFileSwitch = FALSE;
|
||||||
SetWindowTextW (GetDlgItem (hwndDlg, IDC_QUICKFORMAT), GetString("IDC_QUICKFORMAT"));
|
SetCheckBox (hwndDlg, SPARSE_FILE, FALSE);
|
||||||
|
EnableWindow (GetDlgItem (hwndDlg, SPARSE_FILE), FALSE);
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDC_QUICKFORMAT), TRUE);
|
EnableWindow (GetDlgItem (hwndDlg, IDC_QUICKFORMAT), TRUE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -4953,8 +4959,6 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
wchar_t root[TC_MAX_PATH];
|
wchar_t root[TC_MAX_PATH];
|
||||||
DWORD fileSystemFlags = 0;
|
DWORD fileSystemFlags = 0;
|
||||||
|
|
||||||
SetWindowTextW (GetDlgItem (hwndDlg, IDC_QUICKFORMAT), GetString("SPARSE_FILE"));
|
|
||||||
|
|
||||||
/* Check if the host file system supports sparse files */
|
/* Check if the host file system supports sparse files */
|
||||||
|
|
||||||
if (GetVolumePathName (szFileName, root, array_capacity (root)))
|
if (GetVolumePathName (szFileName, root, array_capacity (root)))
|
||||||
@@ -4964,8 +4968,13 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
bSparseFileSwitch = FALSE;
|
bSparseFileSwitch = FALSE;
|
||||||
|
if (!bSparseFileSwitch)
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDC_QUICKFORMAT), bSparseFileSwitch);
|
{
|
||||||
|
dynamicFormat = FALSE;
|
||||||
|
SetCheckBox (hwndDlg, SPARSE_FILE, FALSE);
|
||||||
|
}
|
||||||
|
EnableWindow (GetDlgItem (hwndDlg, SPARSE_FILE), bSparseFileSwitch);
|
||||||
|
EnableWindow (GetDlgItem (hwndDlg, IDC_QUICKFORMAT), TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5866,6 +5875,7 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
bHiddenVolHost = FALSE;
|
bHiddenVolHost = FALSE;
|
||||||
bSparseFileSwitch = FALSE;
|
bSparseFileSwitch = FALSE;
|
||||||
quickFormat = FALSE;
|
quickFormat = FALSE;
|
||||||
|
dynamicFormat = FALSE;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -5904,18 +5914,30 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lw == IDC_QUICKFORMAT && IsButtonChecked (GetDlgItem (hCurPage, IDC_QUICKFORMAT)))
|
if (lw == IDC_QUICKFORMAT)
|
||||||
{
|
{
|
||||||
if (bSparseFileSwitch)
|
if (IsButtonChecked (GetDlgItem (hCurPage, IDC_QUICKFORMAT)))
|
||||||
{
|
|
||||||
if (AskWarnYesNo("CONFIRM_SPARSE_FILE", MainDlg) == IDNO)
|
|
||||||
SetCheckBox (hwndDlg, IDC_QUICKFORMAT, FALSE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (AskWarnYesNo("WARN_QUICK_FORMAT", MainDlg) == IDNO)
|
if (AskWarnYesNo("WARN_QUICK_FORMAT", MainDlg) == IDNO)
|
||||||
SetCheckBox (hwndDlg, IDC_QUICKFORMAT, FALSE);
|
SetCheckBox (hwndDlg, IDC_QUICKFORMAT, FALSE);
|
||||||
}
|
}
|
||||||
|
else if (IsButtonChecked (GetDlgItem (hCurPage, SPARSE_FILE)))
|
||||||
|
{
|
||||||
|
/* sparse file require quick format */
|
||||||
|
SetCheckBox (hwndDlg, SPARSE_FILE, FALSE);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lw == SPARSE_FILE && IsButtonChecked (GetDlgItem (hCurPage, SPARSE_FILE)))
|
||||||
|
{
|
||||||
|
if (AskWarnYesNo("CONFIRM_SPARSE_FILE", MainDlg) == IDNO)
|
||||||
|
SetCheckBox (hwndDlg, SPARSE_FILE, FALSE);
|
||||||
|
else if (!IsButtonChecked (GetDlgItem (hCurPage, IDC_QUICKFORMAT)) && IsWindowEnabled (GetDlgItem (hCurPage, IDC_QUICKFORMAT)))
|
||||||
|
{
|
||||||
|
/* sparse file require quick format */
|
||||||
|
SetCheckBox (hwndDlg, IDC_QUICKFORMAT, TRUE);
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6194,6 +6216,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
}
|
}
|
||||||
|
|
||||||
quickFormat = CmdQuickFormat;
|
quickFormat = CmdQuickFormat;
|
||||||
|
dynamicFormat = CmdSparseFileSwitch;
|
||||||
|
|
||||||
if (!GetDiskFreeSpaceEx (root, &free, 0, 0))
|
if (!GetDiskFreeSpaceEx (root, &free, 0, 0))
|
||||||
{
|
{
|
||||||
@@ -6214,7 +6237,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!bSparseFileSwitch && (nVolumeSize > free.QuadPart))
|
if (!dynamicFormat && (nVolumeSize > free.QuadPart))
|
||||||
{
|
{
|
||||||
AbortProcess ("ERR_CONTAINER_SIZE_TOO_BIG");
|
AbortProcess ("ERR_CONTAINER_SIZE_TOO_BIG");
|
||||||
}
|
}
|
||||||
@@ -6801,7 +6824,8 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
{
|
{
|
||||||
// Format has been aborted (did not finish)
|
// Format has been aborted (did not finish)
|
||||||
|
|
||||||
EnableWindow (GetDlgItem (hCurPage, IDC_QUICKFORMAT), (bDevice || bSparseFileSwitch) && !(bHiddenVol && !bHiddenVolHost));
|
EnableWindow (GetDlgItem (hCurPage, IDC_QUICKFORMAT), !(bHiddenVol && !bHiddenVolHost));
|
||||||
|
EnableWindow (GetDlgItem (hCurPage, SPARSE_FILE), (bSparseFileSwitch) && !(bHiddenVol && !bHiddenVolHost));
|
||||||
EnableWindow (GetDlgItem (hCurPage, IDC_FILESYS), TRUE);
|
EnableWindow (GetDlgItem (hCurPage, IDC_FILESYS), TRUE);
|
||||||
EnableWindow (GetDlgItem (hCurPage, IDC_CLUSTERSIZE), TRUE);
|
EnableWindow (GetDlgItem (hCurPage, IDC_CLUSTERSIZE), TRUE);
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDC_PREV), TRUE);
|
EnableWindow (GetDlgItem (hwndDlg, IDC_PREV), TRUE);
|
||||||
@@ -8354,8 +8378,9 @@ retryCDDriveCheck:
|
|||||||
SendMessage (GetDlgItem (hCurPage, IDC_CLUSTERSIZE), CB_GETCURSEL, 0, 0) , 0);
|
SendMessage (GetDlgItem (hCurPage, IDC_CLUSTERSIZE), CB_GETCURSEL, 0, 0) , 0);
|
||||||
|
|
||||||
quickFormat = IsButtonChecked (GetDlgItem (hCurPage, IDC_QUICKFORMAT));
|
quickFormat = IsButtonChecked (GetDlgItem (hCurPage, IDC_QUICKFORMAT));
|
||||||
|
dynamicFormat = IsButtonChecked (GetDlgItem (hCurPage, SPARSE_FILE));
|
||||||
|
|
||||||
if (!quickFormat && !bDevice && !(bHiddenVol && !bHiddenVolHost) && (nVolumeSize > (ULONGLONG) nAvailableFreeSpace))
|
if (!dynamicFormat && !bDevice && !(bHiddenVol && !bHiddenVolHost) && (nVolumeSize > (ULONGLONG) nAvailableFreeSpace))
|
||||||
{
|
{
|
||||||
Error("VOLUME_TOO_LARGE_FOR_HOST", hwndDlg);
|
Error("VOLUME_TOO_LARGE_FOR_HOST", hwndDlg);
|
||||||
bVolTransformThreadToRun = FALSE;
|
bVolTransformThreadToRun = FALSE;
|
||||||
@@ -8439,9 +8464,9 @@ retryCDDriveCheck:
|
|||||||
}
|
}
|
||||||
else if (bHiddenVol)
|
else if (bHiddenVol)
|
||||||
{
|
{
|
||||||
// Hidden volume is always quick-formatted (if, however, the meaning of quickFormat is
|
// Hidden volume is always quick-formatted.
|
||||||
// whether to create a sparse file, it must be set to FALSE).
|
quickFormat = TRUE;
|
||||||
quickFormat = !bSparseFileSwitch;
|
dynamicFormat = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -8458,6 +8483,7 @@ retryCDDriveCheck:
|
|||||||
EnableWindow (GetDlgItem (hwndDlg, IDHELP), FALSE);
|
EnableWindow (GetDlgItem (hwndDlg, IDHELP), FALSE);
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDCANCEL), FALSE);
|
EnableWindow (GetDlgItem (hwndDlg, IDCANCEL), FALSE);
|
||||||
EnableWindow (GetDlgItem (hCurPage, IDC_QUICKFORMAT), FALSE);
|
EnableWindow (GetDlgItem (hCurPage, IDC_QUICKFORMAT), FALSE);
|
||||||
|
EnableWindow (GetDlgItem (hCurPage, SPARSE_FILE), FALSE);
|
||||||
EnableWindow (GetDlgItem (hCurPage, IDC_CLUSTERSIZE), FALSE);
|
EnableWindow (GetDlgItem (hCurPage, IDC_CLUSTERSIZE), FALSE);
|
||||||
EnableWindow (GetDlgItem (hCurPage, IDC_FILESYS), FALSE);
|
EnableWindow (GetDlgItem (hCurPage, IDC_FILESYS), FALSE);
|
||||||
EnableWindow (GetDlgItem (hCurPage, IDC_ABORT_BUTTON), TRUE);
|
EnableWindow (GetDlgItem (hCurPage, IDC_ABORT_BUTTON), TRUE);
|
||||||
|
|||||||
Reference in New Issue
Block a user