mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-12 03:18:26 -06:00
Windows: A Quick Expand option to VeraCrypt Expander to allow quicker expansion of file containers after warning about security issues associated with it.
This commit is contained in:
@@ -492,7 +492,7 @@ error:
|
||||
Remarks: a lot of code is from TrueCrypt 'Common\Password.c' :: ChangePwd()
|
||||
|
||||
*/
|
||||
static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePassword, int VolumePkcs5, int VolumePim, uint64 newHostSize, BOOL initFreeSpace)
|
||||
static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePassword, int VolumePkcs5, int VolumePim, uint64 newHostSize, BOOL initFreeSpace, BOOL bQuickExpand)
|
||||
{
|
||||
int nDosLinkCreated = 1, nStatus = ERR_OS_ERROR;
|
||||
wchar_t szDiskFile[TC_MAX_PATH], szCFDevice[TC_MAX_PATH];
|
||||
@@ -754,8 +754,21 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas
|
||||
{
|
||||
// Preallocate the file
|
||||
if (!SetFilePointerEx (dev, liNewSize, NULL, FILE_BEGIN)
|
||||
|| !SetEndOfFile (dev)
|
||||
|| SetFilePointer (dev, 0, NULL, FILE_BEGIN) != 0)
|
||||
|| !SetEndOfFile (dev))
|
||||
{
|
||||
nStatus = ERR_OS_ERROR;
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (bQuickExpand)
|
||||
{
|
||||
if (!SetFileValidData (dev, liNewSize.QuadPart))
|
||||
{
|
||||
DebugAddProgressDlgStatus(hwndDlg, L"Warning: Failed to perform Quick Expand. Continuing with standard expanding...\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (SetFilePointer (dev, 0, NULL, FILE_BEGIN) != 0)
|
||||
{
|
||||
nStatus = ERR_OS_ERROR;
|
||||
goto error;
|
||||
@@ -1061,7 +1074,7 @@ void __cdecl volTransformThreadFunction (void *pExpandDlgParam)
|
||||
HWND hwndDlg = (HWND) pParam->hwndDlg;
|
||||
|
||||
nStatus = ExpandVolume (hwndDlg, (wchar_t*)pParam->szVolumeName, pParam->pVolumePassword,
|
||||
pParam->VolumePkcs5, pParam->VolumePim, pParam->newSize, pParam->bInitFreeSpace );
|
||||
pParam->VolumePkcs5, pParam->VolumePim, pParam->newSize, pParam->bInitFreeSpace, pParam->bQuickExpand );
|
||||
|
||||
if (nStatus!=ERR_SUCCESS && nStatus!=ERR_USER_ABORT)
|
||||
handleError (hwndDlg, nStatus, SRC_POS);
|
||||
|
||||
Reference in New Issue
Block a user