VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Common/Dlgcode.c46
-rw-r--r--src/Common/Dlgcode.h2
-rw-r--r--src/Common/Language.xml1
-rw-r--r--src/ExpandVolume/ExpandVolume.vcproj12
-rw-r--r--src/ExpandVolume/WinMain.cpp2
-rw-r--r--src/Format/Format.vcproj12
-rw-r--r--src/Format/Tcformat.cbin633832 -> 634120 bytes
-rw-r--r--src/Mount/Mount.c16
-rw-r--r--src/Mount/Mount.rc38
-rw-r--r--src/Mount/Mount.vcproj12
-rw-r--r--src/Mount/Resource.h3
-rw-r--r--src/Setup/Setup.vcproj7
12 files changed, 109 insertions, 42 deletions
diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c
index 6d86449c..cc7f0e74 100644
--- a/src/Common/Dlgcode.c
+++ b/src/Common/Dlgcode.c
@@ -101,6 +101,7 @@ wchar_t *lpszTitle = NULL;
BOOL Silent = FALSE;
BOOL bPreserveTimestamp = TRUE;
+BOOL bShowDisconnectedNetworkDrives = FALSE;
BOOL bStartOnLogon = FALSE;
BOOL bMountDevicesOnLogon = FALSE;
BOOL bMountFavoritesOnLogon = FALSE;
@@ -225,6 +226,7 @@ HMODULE hbcryptdll = NULL;
HMODULE hbcryptprimitivesdll = NULL;
HMODULE hMsls31 = NULL;
HMODULE hntmartadll = NULL;
+HMODULE hwinscarddll = NULL;
#define FREE_DLL(h) if (h) { FreeLibrary (h); h = NULL;}
@@ -572,6 +574,7 @@ void AbortProcessDirect (wchar_t *abortMsg)
FREE_DLL (hbcryptprimitivesdll);
FREE_DLL (hMsls31);
FREE_DLL (hntmartadll);
+ FREE_DLL (hwinscarddll);
exit (1);
}
@@ -620,6 +623,7 @@ void AbortProcessSilent (void)
FREE_DLL (hbcryptprimitivesdll);
FREE_DLL (hMsls31);
FREE_DLL (hntmartadll);
+ FREE_DLL (hwinscarddll);
// Note that this function also causes localcleanup() to be called (see atexit())
exit (1);
@@ -2492,6 +2496,7 @@ void InitApp (HINSTANCE hInstance, wchar_t *lpszCommandLine)
InitOSVersionInfo();
LoadSystemDll (L"ntmarta.dll", &hntmartadll, TRUE, SRC_POS);
+ LoadSystemDll (L"MPR.DLL", &hmprdll, TRUE, SRC_POS);
#ifdef SETUP
if (IsOSAtLeast (WIN_7))
{
@@ -2529,7 +2534,6 @@ void InitApp (HINSTANCE hInstance, wchar_t *lpszCommandLine)
LoadSystemDll (L"netapi32.dll", &hnetapi32dll, TRUE, SRC_POS);
LoadSystemDll (L"authz.dll", &hauthzdll, TRUE, SRC_POS);
LoadSystemDll (L"xmllite.dll", &hxmllitedll, TRUE, SRC_POS);
- LoadSystemDll (L"mpr.dll", &hmprdll, TRUE, SRC_POS);
}
}
@@ -2555,6 +2559,8 @@ void InitApp (HINSTANCE hInstance, wchar_t *lpszCommandLine)
LoadSystemDll (L"bcryptprimitives.dll", &hbcryptprimitivesdll, TRUE, SRC_POS);
}
}
+#else
+ LoadSystemDll (L"WINSCARD.DLL", &hwinscarddll, TRUE, SRC_POS);
#endif
LoadSystemDll (L"COMCTL32.DLL", &hComctl32Dll, FALSE, SRC_POS);
@@ -2804,6 +2810,7 @@ void InitApp (HINSTANCE hInstance, wchar_t *lpszCommandLine)
FREE_DLL (hbcryptprimitivesdll);
FREE_DLL (hMsls31);
FREE_DLL (hntmartadll);
+ FREE_DLL (hwinscarddll);
exit (1);
}
#endif
@@ -2847,6 +2854,7 @@ void FinalizeApp (void)
FREE_DLL (hbcryptprimitivesdll);
FREE_DLL (hMsls31);
FREE_DLL (hntmartadll);
+ FREE_DLL (hwinscarddll);
}
void InitHelpFileName (void)
@@ -6506,10 +6514,40 @@ BOOL WrongPwdRetryCountOverLimit (void)
return (WrongPwdRetryCounter > TC_TRY_HEADER_BAK_AFTER_NBR_WRONG_PWD_TRIES);
}
+DWORD GetUsedLogicalDrives (void)
+{
+ DWORD dwUsedDrives = GetLogicalDrives();
+ if (!bShowDisconnectedNetworkDrives)
+ {
+ /* detect disconnected mapped network shares and removed
+ * their associated drives from the list
+ */
+ WCHAR remotePath[512];
+ WCHAR drive[3] = {L'A', L':', 0};
+ DWORD dwLen, status;
+ for (WCHAR i = 0; i <= MAX_MOUNTED_VOLUME_DRIVE_NUMBER; i++)
+ {
+ if ((dwUsedDrives & (1 << i)) == 0)
+ {
+ drive[0] = L'A' + i;
+ dwLen = ARRAYSIZE (remotePath);
+ status = WNetGetConnection (drive, remotePath, &dwLen);
+ if ((NO_ERROR == status) || (status == ERROR_CONNECTION_UNAVAIL))
+ {
+ /* this is a mapped network share, mark it as used */
+ dwUsedDrives |= (1 << i);
+ }
+ }
+ }
+ }
+
+ return dwUsedDrives;
+}
+
int GetFirstAvailableDrive ()
{
- DWORD dwUsedDrives = GetLogicalDrives();
+ DWORD dwUsedDrives = GetUsedLogicalDrives();
int i;
for (i = 0; i < 26; i++)
@@ -6524,7 +6562,7 @@ int GetFirstAvailableDrive ()
int GetLastAvailableDrive ()
{
- DWORD dwUsedDrives = GetLogicalDrives();
+ DWORD dwUsedDrives = GetUsedLogicalDrives();
int i;
for (i = 25; i >= 0; i--)
@@ -6539,7 +6577,7 @@ int GetLastAvailableDrive ()
BOOL IsDriveAvailable (int driveNo)
{
- return (GetLogicalDrives() & (1 << driveNo)) == 0;
+ return (GetUsedLogicalDrives() & (1 << driveNo)) == 0;
}
diff --git a/src/Common/Dlgcode.h b/src/Common/Dlgcode.h
index 7ab74c08..601f7ac7 100644
--- a/src/Common/Dlgcode.h
+++ b/src/Common/Dlgcode.h
@@ -115,6 +115,7 @@ extern HWND MainDlg;
extern BOOL Silent;
extern BOOL bHistory;
extern BOOL bPreserveTimestamp;
+extern BOOL bShowDisconnectedNetworkDrives;
extern BOOL bStartOnLogon;
extern BOOL bMountDevicesOnLogon;
extern BOOL bMountFavoritesOnLogon;
@@ -330,6 +331,7 @@ void CorrectFileName (wchar_t* fileName);
void IncreaseWrongPwdRetryCount (int count);
void ResetWrongPwdRetryCount (void);
BOOL WrongPwdRetryCountOverLimit (void);
+DWORD GetUsedLogicalDrives (void);
int GetFirstAvailableDrive ();
int GetLastAvailableDrive ();
BOOL IsDriveAvailable (int driveNo);
diff --git a/src/Common/Language.xml b/src/Common/Language.xml
index 1fbed144..16821359 100644
--- a/src/Common/Language.xml
+++ b/src/Common/Language.xml
@@ -181,6 +181,7 @@
<control lang="en" key="IDC_SELECT_DEVICE">Select D&amp;evice...</control>
<control lang="en" key="IDC_SELECT_FILE">Select &amp;File...</control>
<control lang="en" key="IDC_SELECT_PKCS11_MODULE">Select &amp;Library...</control>
+ <control lang="en" key="IDC_SHOW_DISCONNECTED_NETWORK_DRIVES">Make disconnected network drives available for mounting</control>
<control lang="en" key="IDC_SHOW_PASSWORD_CHPWD_NEW">Display password</control>
<control lang="en" key="IDC_SHOW_PASSWORD_CHPWD_ORI">Display password</control>
<control lang="en" key="IDC_TRAVEL_OPEN_EXPLORER">Open &amp;Explorer window for mounted volume</control>
diff --git a/src/ExpandVolume/ExpandVolume.vcproj b/src/ExpandVolume/ExpandVolume.vcproj
index 544104f4..4ca6c9d9 100644
--- a/src/ExpandVolume/ExpandVolume.vcproj
+++ b/src/ExpandVolume/ExpandVolume.vcproj
@@ -75,11 +75,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Debug\crypto.lib"
+ AdditionalDependencies="..\Crypto\Debug\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCryptExpander.exe"
LinkIncremental="2"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/ExpandVolume.pdb"
SubSystem="2"
@@ -168,11 +169,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib"
+ AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCryptExpander.exe"
LinkIncremental="2"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/ExpandVolume.pdb"
SubSystem="2"
@@ -256,11 +258,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Release\crypto.lib"
+ AdditionalDependencies="..\Crypto\Release\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCryptExpander.exe"
LinkIncremental="1"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="false"
GenerateMapFile="true"
SubSystem="2"
@@ -347,11 +350,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Release\crypto.lib"
+ AdditionalDependencies="..\Crypto\x64\Release\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCryptExpander.exe"
LinkIncremental="1"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="false"
GenerateMapFile="true"
SubSystem="2"
diff --git a/src/ExpandVolume/WinMain.cpp b/src/ExpandVolume/WinMain.cpp
index ec32d405..4c9165d9 100644
--- a/src/ExpandVolume/WinMain.cpp
+++ b/src/ExpandVolume/WinMain.cpp
@@ -282,6 +282,7 @@ void LoadSettings (HWND hwndDlg)
defaultKeyFilesParam.EnableKeyFiles = ConfigReadInt ("UseKeyfiles", FALSE);
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = ConfigReadInt ("PreserveTimestamps", TRUE);
+ bShowDisconnectedNetworkDrives = ConfigReadInt ("ShowDisconnectedNetworkDrives", FALSE);
defaultMountOptions.Removable = ConfigReadInt ("MountVolumesRemovable", FALSE);
defaultMountOptions.ReadOnly = ConfigReadInt ("MountVolumesReadOnly", FALSE);
defaultMountOptions.ProtectHiddenVolume = FALSE;
@@ -871,6 +872,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
// Set critical default options in case UsePreferences is false
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = TRUE;
+ bShowDisconnectedNetworkDrives = FALSE;
if (UsePreferences)
{
diff --git a/src/Format/Format.vcproj b/src/Format/Format.vcproj
index 5c4deb31..b8747baf 100644
--- a/src/Format/Format.vcproj
+++ b/src/Format/Format.vcproj
@@ -68,11 +68,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Debug\crypto.lib"
+ AdditionalDependencies="..\Crypto\Debug\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCryptFormat.exe"
LinkIncremental="2"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/Format.pdb"
SubSystem="2"
@@ -154,11 +155,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib"
+ AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCryptFormat.exe"
LinkIncremental="2"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/Format.pdb"
SubSystem="2"
@@ -240,11 +242,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Release\crypto.lib"
+ AdditionalDependencies="..\Crypto\Release\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCryptFormat.exe"
LinkIncremental="1"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="false"
GenerateMapFile="true"
SubSystem="2"
@@ -329,11 +332,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Release\crypto.lib"
+ AdditionalDependencies="..\Crypto\x64\Release\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCryptFormat.exe"
LinkIncremental="1"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="false"
GenerateMapFile="true"
SubSystem="2"
diff --git a/src/Format/Tcformat.c b/src/Format/Tcformat.c
index c660e10b..54e0d63e 100644
--- a/src/Format/Tcformat.c
+++ b/src/Format/Tcformat.c
Binary files differ
diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c
index 59023200..1aef7a53 100644
--- a/src/Mount/Mount.c
+++ b/src/Mount/Mount.c
@@ -705,6 +705,8 @@ void LoadSettingsAndCheckModified (HWND hwndDlg, BOOL bOnlyCheckModified, BOOL*
if (!bOnlyCheckModified)
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp;
+ ConfigReadCompareInt ("ShowDisconnectedNetworkDrives", FALSE, &bShowDisconnectedNetworkDrives, bOnlyCheckModified, pbSettingsModified);
+
ConfigReadCompareInt ("MountVolumesRemovable", FALSE, &defaultMountOptions.Removable, bOnlyCheckModified, pbSettingsModified);
ConfigReadCompareInt ("MountVolumesReadOnly", FALSE, &defaultMountOptions.ReadOnly, bOnlyCheckModified, pbSettingsModified);
@@ -860,6 +862,7 @@ void SaveSettings (HWND hwndDlg)
ConfigWriteInt ("MountVolumesReadOnly", defaultMountOptions.ReadOnly);
ConfigWriteInt ("MountVolumesRemovable", defaultMountOptions.Removable);
ConfigWriteInt ("PreserveTimestamps", defaultMountOptions.PreserveTimestamp);
+ ConfigWriteInt ("ShowDisconnectedNetworkDrives",bShowDisconnectedNetworkDrives);
ConfigWriteInt ("EnableBackgroundTask", bEnableBkgTask);
ConfigWriteInt ("CloseBackgroundTaskOnNoVolumes", bCloseBkgTaskWhenNoVolumes);
@@ -1454,7 +1457,7 @@ void LoadDriveLetters (HWND hwndDlg, HWND hTree, int drive)
AbortProcessSilent();
}
- LastKnownLogicalDrives = dwUsedDrives = GetLogicalDrives ();
+ LastKnownLogicalDrives = dwUsedDrives = GetUsedLogicalDrives ();
if (dwUsedDrives == 0)
Warning ("DRIVELETTERS", hwndDlg);
@@ -3069,6 +3072,9 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
SendMessage (GetDlgItem (hwndDlg, IDC_PRESERVE_TIMESTAMPS), BM_SETCHECK,
defaultMountOptions.PreserveTimestamp ? BST_CHECKED:BST_UNCHECKED, 0);
+
+ SendMessage (GetDlgItem (hwndDlg, IDC_SHOW_DISCONNECTED_NETWORK_DRIVES), BM_SETCHECK,
+ bShowDisconnectedNetworkDrives ? BST_CHECKED:BST_UNCHECKED, 0);
SendMessage (GetDlgItem (hwndDlg, IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT), BM_SETCHECK,
bCacheDuringMultipleMount ? BST_CHECKED:BST_UNCHECKED, 0);
@@ -3183,6 +3189,7 @@ BOOL CALLBACK PreferencesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM
bExplore = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_OPEN_EXPLORER));
bUseDifferentTrayIconIfVolMounted = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_USE_DIFF_TRAY_ICON_IF_VOL_MOUNTED));
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PRESERVE_TIMESTAMPS));
+ bShowDisconnectedNetworkDrives = IsButtonChecked (GetDlgItem (hwndDlg, IDC_SHOW_DISCONNECTED_NETWORK_DRIVES));
bCacheDuringMultipleMount = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT));
bWipeCacheOnExit = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_EXIT));
bWipeCacheOnAutoDismount = IsButtonChecked (GetDlgItem (hwndDlg, IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT));
@@ -5830,7 +5837,7 @@ static BOOL CheckMountList (HWND hwndDlg, BOOL bForceTaskBarUpdate)
return TRUE;
}
- if (LastKnownLogicalDrives != GetLogicalDrives()
+ if (LastKnownLogicalDrives != GetUsedLogicalDrives()
|| memcmp (&LastKnownMountList, &current, sizeof (current)) != 0)
{
wchar_t selDrive;
@@ -6188,6 +6195,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
// Set critical default options in case UsePreferences is false
bPreserveTimestamp = defaultMountOptions.PreserveTimestamp = TRUE;
+ bShowDisconnectedNetworkDrives = FALSE;
ResetWrongPwdRetryCount ();
@@ -7006,7 +7014,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
for (i = 0; i < 26; i++)
{
- if ((vol->dbcv_unitmask & (1 << i)) && !(GetLogicalDrives() & (1 << i)))
+ if ((vol->dbcv_unitmask & (1 << i)) && !(GetUsedLogicalDrives() & (1 << i)))
{
for (m = 0; m < 26; m++)
{
@@ -7891,7 +7899,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if (lw == IDM_REFRESH_DRIVE_LETTERS)
{
- DWORD driveMap = GetLogicalDrives ();
+ DWORD driveMap = GetUsedLogicalDrives ();
WaitCursor ();
diff --git a/src/Mount/Mount.rc b/src/Mount/Mount.rc
index 9e34d6bb..76cae781 100644
--- a/src/Mount/Mount.rc
+++ b/src/Mount/Mount.rc
@@ -41,7 +41,7 @@ IDR_MOUNT_TLB TYPELIB "Mount.tlb"
// Dialog
//
-IDD_PREFERENCES_DLG DIALOGEX 0, 0, 336, 305
+IDD_PREFERENCES_DLG DIALOGEX 0, 0, 336, 316
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "VeraCrypt - Preferences"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
@@ -58,10 +58,12 @@ BEGIN
CONTROL "Mount all device-hosted VeraCrypt volumes",IDC_PREF_LOGON_MOUNT_DEVICES,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,75,188,10
CONTROL "User logs off",IDC_PREF_DISMOUNT_LOGOFF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,81,104,114,11
- CONTROL "Entering power saving mode",IDC_PREF_DISMOUNT_POWERSAVING,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,115,130,11
+ CONTROL "User session locked",IDC_PREF_DISMOUNT_SESSION_LOCKED,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,105,130,11
CONTROL "Screen saver is launched",IDC_PREF_DISMOUNT_SCREENSAVER,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,81,116,114,10
+ CONTROL "Entering power saving mode",IDC_PREF_DISMOUNT_POWERSAVING,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,115,130,11
CONTROL "Auto-dismount volume after no data has been read/written to it for",IDC_PREF_DISMOUNT_INACTIVE,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,128,246,11
EDITTEXT IDC_PREF_DISMOUNT_INACTIVE_TIME,258,127,27,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
@@ -73,29 +75,29 @@ BEGIN
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,184,314,10
CONTROL "Preserve modification timestamp of file containers",IDC_PRESERVE_TIMESTAMPS,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,196,316,10
+ CONTROL "Make disconnected network drives available for mounting",IDC_SHOW_DISCONNECTED_NETWORK_DRIVES,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,208,316,10
CONTROL "Cache passwords in driver memory",IDC_PREF_CACHE_PASSWORDS,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,227,146,11
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,238,146,11
CONTROL "Wipe cached passwords on exit",IDC_PREF_WIPE_CACHE_ON_EXIT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,227,165,11
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,238,165,11
+ CONTROL "Temporary Cache password during ""Mount Favorite Volumes"" operations",IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,252,294,11
CONTROL "Wipe cached passwords on auto-dismount",IDC_PREF_WIPE_CACHE_ON_AUTODISMOUNT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,255,296,11
- PUSHBUTTON "More Settings...",IDC_MORE_SETTINGS,5,289,85,14
- DEFPUSHBUTTON "OK",IDOK,225,289,50,14
- PUSHBUTTON "Cancel",IDCANCEL,281,289,50,14
- GROUPBOX "Windows",IDT_WINDOWS_RELATED_SETTING,4,160,328,52
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,266,296,11
+ CONTROL "Include PIM when caching a password",IDC_PREF_CACHE_PIM,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,280,296,10
+ PUSHBUTTON "More Settings...",IDC_MORE_SETTINGS,5,300,85,14
+ DEFPUSHBUTTON "OK",IDOK,225,300,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,281,300,50,14
+ GROUPBOX "Windows",IDT_WINDOWS_RELATED_SETTING,4,160,328,62
GROUPBOX "Default Mount Options",IDT_DEFAULT_MOUNT_OPTIONS,4,3,328,26
GROUPBOX "VeraCrypt Background Task",IDT_TASKBAR_ICON,4,33,328,26
GROUPBOX "Auto-Dismount",IDT_AUTO_DISMOUNT,4,94,328,62
LTEXT "minutes",IDT_MINUTES,289,129,39,10
LTEXT "Dismount all when:",IDT_AUTO_DISMOUNT_ON,9,110,71,17
- GROUPBOX "Password Cache",IDT_PW_CACHE_OPTIONS,4,216,328,68
+ GROUPBOX "Password Cache",IDT_PW_CACHE_OPTIONS,4,227,328,68
GROUPBOX "Actions to perform upon logon to Windows",IDT_LOGON,4,63,328,28
- CONTROL "User session locked",IDC_PREF_DISMOUNT_SESSION_LOCKED,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,197,105,130,11
- CONTROL "Temporary Cache password during ""Mount Favorite Volumes"" operations",IDC_PREF_TEMP_CACHE_ON_MULTIPLE_MOUNT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,241,294,11
- CONTROL "Include PIM when caching a password",IDC_PREF_CACHE_PIM,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,269,296,10
END
IDD_VOLUME_PROPERTIES DIALOGEX 60, 30, 284, 224
@@ -390,7 +392,7 @@ BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 329
TOPMARGIN, 7
- BOTTOMMARGIN, 303
+ BOTTOMMARGIN, 314
END
IDD_VOLUME_PROPERTIES, DIALOG
diff --git a/src/Mount/Mount.vcproj b/src/Mount/Mount.vcproj
index 260e3041..64163c7c 100644
--- a/src/Mount/Mount.vcproj
+++ b/src/Mount/Mount.vcproj
@@ -74,11 +74,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Debug\crypto.lib"
+ AdditionalDependencies="..\Crypto\Debug\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCrypt.exe"
LinkIncremental="2"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/Mount.pdb"
SubSystem="2"
@@ -166,11 +167,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib"
+ AdditionalDependencies="..\Crypto\x64\Debug\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCrypt.exe"
LinkIncremental="2"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/Mount.pdb"
SubSystem="2"
@@ -254,11 +256,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\Release\crypto.lib"
+ AdditionalDependencies="..\Crypto\Release\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCrypt.exe"
LinkIncremental="1"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="false"
GenerateMapFile="true"
SubSystem="2"
@@ -345,11 +348,12 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="..\Crypto\x64\Release\crypto.lib"
+ AdditionalDependencies="..\Crypto\x64\Release\crypto.lib mpr.lib"
OutputFile="$(OutDir)/VeraCrypt.exe"
LinkIncremental="1"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
+ DelayLoadDLLs="mpr.dll"
GenerateDebugInformation="false"
GenerateMapFile="true"
SubSystem="2"
diff --git a/src/Mount/Resource.h b/src/Mount/Resource.h
index b4c2ff2c..1a3bc9b4 100644
--- a/src/Mount/Resource.h
+++ b/src/Mount/Resource.h
@@ -175,6 +175,7 @@
#define IDT_WIPE_MODE 1153
#define IDC_PREF_CACHE_PIM 1154
#define IDC_BOOT_LOADER_CACHE_PIM 1155
+#define IDC_SHOW_DISCONNECTED_NETWORK_DRIVES 1156
#define IDM_HELP 40001
#define IDM_ABOUT 40002
#define IDM_UNMOUNT_VOLUME 40003
@@ -251,7 +252,7 @@
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 119
#define _APS_NEXT_COMMAND_VALUE 40069
-#define _APS_NEXT_CONTROL_VALUE 1156
+#define _APS_NEXT_CONTROL_VALUE 1157
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
diff --git a/src/Setup/Setup.vcproj b/src/Setup/Setup.vcproj
index 02b33b36..b2fba01e 100644
--- a/src/Setup/Setup.vcproj
+++ b/src/Setup/Setup.vcproj
@@ -65,12 +65,12 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/NODEFAULTLIB:LIBCMTD"
- AdditionalDependencies="libcmtd.lib"
+ AdditionalDependencies="libcmtd.lib mpr.lib"
OutputFile="$(OutDir)/VeraCryptSetup.exe"
LinkIncremental="2"
GenerateManifest="false"
UACExecutionLevel="2"
- DelayLoadDLLs="user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll"
+ DelayLoadDLLs="user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;mpr.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/Setup.pdb"
SubSystem="2"
@@ -153,11 +153,12 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/IGNORE:4089"
+ AdditionalDependencies="mpr.lib"
OutputFile="$(OutDir)/VeraCryptSetup.exe"
LinkIncremental="1"
GenerateManifest="false"
UACExecutionLevel="2"
- DelayLoadDLLs="user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll"
+ DelayLoadDLLs="user32.dll;gdi32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;mpr.dll"
GenerateDebugInformation="false"
GenerateMapFile="true"
SubSystem="2"