From b33a70498eefe52dfce724b1d888ceba7ef099ae Mon Sep 17 00:00:00 2001 From: Michael Nelson Date: Tue, 7 Nov 2000 15:44:17 +0000 Subject: [PATCH] winnt-letter-mappings-20001107 Single user drive letter mapping support --- src/WINNT/client_config/drivemap.cpp | 44 +++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/src/WINNT/client_config/drivemap.cpp b/src/WINNT/client_config/drivemap.cpp index cb623ae91..0fadf3ad5 100644 --- a/src/WINNT/client_config/drivemap.cpp +++ b/src/WINNT/client_config/drivemap.cpp @@ -146,6 +146,30 @@ static BOOL IsWindowsNT (void) } +BOOL IsWindows2000 (void) +{ + static BOOL fChecked = FALSE; + static BOOL fIsWin2K = FALSE; + + if (!fChecked) + { + fChecked = TRUE; + + OSVERSIONINFO Version; + memset (&Version, 0x00, sizeof(Version)); + Version.dwOSVersionInfoSize = sizeof(Version); + + if (GetVersionEx (&Version)) + { + if (Version.dwPlatformId == VER_PLATFORM_WIN32_NT && + Version.dwMajorVersion >= 5) + fIsWin2K = TRUE; + } + } + + return fIsWin2K; +} + /* * GENERAL ____________________________________________________________________ * @@ -704,13 +728,31 @@ BOOL GetDriveSubmount (TCHAR chDrive, LPTSTR pszSubmountNow) // // \Device\LanmanRedirector\Q:\machine-afs\submount // + // on Windows NT. On Windows 2000, it will be: + // + // \Device\LanmanRedirector\;Q:0\machine-afs\submount + // + // (This is presumably to support multiple drive mappings with + // Terminal Server). + // if (lstrncmpi (szMapping, cszLANMANDEVICE, lstrlen(cszLANMANDEVICE))) return FALSE; pszSubmount = &szMapping[ lstrlen(cszLANMANDEVICE) ]; - if (toupper(*pszSubmount) != chDrive) + + if (IsWindows2000()) + if (*(pszSubmount) != TEXT(';')) + return FALSE; + + if (toupper(*(++pszSubmount)) != chDrive) return FALSE; + if (*(++pszSubmount) != TEXT(':')) return FALSE; + + if (IsWindows2000()) + if (*(++pszSubmount) != TEXT('0')) + return FALSE; + if (*(++pszSubmount) != TEXT('\\')) return FALSE; for (++pszSubmount; *pszSubmount && (*pszSubmount != TEXT('\\')); ++pszSubmount) -- 2.39.5