mirror of
https://github.com/veracrypt/VeraCrypt
synced 2024-11-30 23:13:31 +01:00
Windows: Only offer valid cluster sizes when ReFS is selected in the volume format wizard.
This commit is contained in:
parent
bc8e6fa5bd
commit
5651d505f5
@ -3638,6 +3638,36 @@ void DisableIfGpt(HWND control)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void UpdateClusterSizeList (HWND hwndDlg, int fsType)
|
||||||
|
{
|
||||||
|
SendMessage (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), CB_RESETCONTENT, 0, 0);
|
||||||
|
AddComboPair (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), GetString ("DEFAULT"), 0);
|
||||||
|
|
||||||
|
for (int i = 1; i <= 128; i *= 2)
|
||||||
|
{
|
||||||
|
wstringstream s;
|
||||||
|
DWORD size = GetFormatSectorSize() * i;
|
||||||
|
|
||||||
|
if (size > TC_MAX_FAT_CLUSTER_SIZE)
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* ReFS supports only 4KiB and 64KiB clusters */
|
||||||
|
if ((fsType == FILESYS_REFS) && (size != 4*BYTES_PER_KB) && (size != 64*BYTES_PER_KB))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (size == 512)
|
||||||
|
s << L"0.5";
|
||||||
|
else
|
||||||
|
s << size / BYTES_PER_KB;
|
||||||
|
|
||||||
|
s << L" " << GetString ("KB");
|
||||||
|
|
||||||
|
AddComboPair (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), s.str().c_str(), i);
|
||||||
|
}
|
||||||
|
|
||||||
|
SendMessage (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), CB_SETCURSEL, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* Except in response to the WM_INITDIALOG message, the dialog box procedure
|
/* Except in response to the WM_INITDIALOG message, the dialog box procedure
|
||||||
should return nonzero if it processes the message, and zero if it does
|
should return nonzero if it processes the message, and zero if it does
|
||||||
not. - see DialogProc */
|
not. - see DialogProc */
|
||||||
@ -4915,29 +4945,6 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_HEADER_KEY), showKeys ? L"" : L"******************************** ");
|
SetWindowText (GetDlgItem (hwndDlg, IDC_HEADER_KEY), showKeys ? L"" : L"******************************** ");
|
||||||
SetWindowText (GetDlgItem (hwndDlg, IDC_DISK_KEY), showKeys ? L"" : L"******************************** ");
|
SetWindowText (GetDlgItem (hwndDlg, IDC_DISK_KEY), showKeys ? L"" : L"******************************** ");
|
||||||
|
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), CB_RESETCONTENT, 0, 0);
|
|
||||||
AddComboPair (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), GetString ("DEFAULT"), 0);
|
|
||||||
|
|
||||||
for (int i = 1; i <= 128; i *= 2)
|
|
||||||
{
|
|
||||||
wstringstream s;
|
|
||||||
DWORD size = GetFormatSectorSize() * i;
|
|
||||||
|
|
||||||
if (size > TC_MAX_FAT_CLUSTER_SIZE)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (size == 512)
|
|
||||||
s << L"0.5";
|
|
||||||
else
|
|
||||||
s << size / BYTES_PER_KB;
|
|
||||||
|
|
||||||
s << L" " << GetString ("KB");
|
|
||||||
|
|
||||||
AddComboPair (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), s.str().c_str(), i);
|
|
||||||
}
|
|
||||||
|
|
||||||
SendMessage (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), CB_SETCURSEL, 0, 0);
|
|
||||||
|
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), TRUE);
|
EnableWindow (GetDlgItem (hwndDlg, IDC_CLUSTERSIZE), TRUE);
|
||||||
|
|
||||||
/* Filesystems */
|
/* Filesystems */
|
||||||
@ -5021,6 +5028,8 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
SendMessage (GetDlgItem (hwndDlg, IDC_FILESYS), CB_SETCURSEL, 0, 0);
|
SendMessage (GetDlgItem (hwndDlg, IDC_FILESYS), CB_SETCURSEL, 0, 0);
|
||||||
SelectAlgo (GetDlgItem (hwndDlg, IDC_FILESYS), (int *) &fileSystem);
|
SelectAlgo (GetDlgItem (hwndDlg, IDC_FILESYS), (int *) &fileSystem);
|
||||||
|
|
||||||
|
UpdateClusterSizeList (hwndDlg, fileSystem);
|
||||||
|
|
||||||
EnableWindow (GetDlgItem (hwndDlg, IDC_ABORT_BUTTON), FALSE);
|
EnableWindow (GetDlgItem (hwndDlg, IDC_ABORT_BUTTON), FALSE);
|
||||||
|
|
||||||
SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_NEXT), GetString ("FORMAT"));
|
SetWindowTextW (GetDlgItem (GetParent (hwndDlg), IDC_NEXT), GetString ("FORMAT"));
|
||||||
@ -5886,6 +5895,11 @@ BOOL CALLBACK PageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||||||
fileSystem = (int) SendMessage (GetDlgItem (hCurPage, IDC_FILESYS), CB_GETITEMDATA,
|
fileSystem = (int) SendMessage (GetDlgItem (hCurPage, IDC_FILESYS), CB_GETITEMDATA,
|
||||||
SendMessage (GetDlgItem (hCurPage, IDC_FILESYS), CB_GETCURSEL, 0, 0) , 0);
|
SendMessage (GetDlgItem (hCurPage, IDC_FILESYS), CB_GETCURSEL, 0, 0) , 0);
|
||||||
|
|
||||||
|
if (nCurPageNo == FORMAT_PAGE)
|
||||||
|
{
|
||||||
|
UpdateClusterSizeList (hCurPage, fileSystem);
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user