Author: ekohl
Date: Thu May 6 00:53:01 2010
New Revision: 47107
URL:
http://svn.reactos.org/svn/reactos?rev=47107&view=rev
Log:
[FORMATTING]
No code changes.
Modified:
trunk/reactos/dll/win32/userenv/environment.c
Modified: trunk/reactos/dll/win32/userenv/environment.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/userenv/environm…
==============================================================================
--- trunk/reactos/dll/win32/userenv/environment.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/userenv/environment.c [iso-8859-1] Thu May 6 00:53:01 2010
@@ -32,394 +32,396 @@
static BOOL
-SetUserEnvironmentVariable (LPVOID *Environment,
- LPWSTR lpName,
- LPWSTR lpValue,
- BOOL bExpand)
-{
- WCHAR ShortName[MAX_PATH];
- UNICODE_STRING Name;
- UNICODE_STRING SrcValue;
- UNICODE_STRING DstValue;
- ULONG Length;
- NTSTATUS Status;
- PVOID Buffer=NULL;
-
- if (bExpand)
- {
- RtlInitUnicodeString(&SrcValue,
- lpValue);
-
- Length = 2 * MAX_PATH * sizeof(WCHAR);
-
- DstValue.Length = 0;
- DstValue.MaximumLength = Length;
- DstValue.Buffer = Buffer = LocalAlloc(LPTR,
- Length);
-
- if (DstValue.Buffer == NULL)
- {
- DPRINT1("LocalAlloc() failed\n");
- return FALSE;
- }
-
- Status = RtlExpandEnvironmentStrings_U((PWSTR)*Environment,
- &SrcValue,
- &DstValue,
- &Length);
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("RtlExpandEnvironmentStrings_U() failed (Status %lx)\n",
Status);
- DPRINT1("Length %lu\n", Length);
- if (Buffer) LocalFree(Buffer);
- return FALSE;
- }
- }
- else
- {
- RtlInitUnicodeString(&DstValue,
- lpValue);
- }
-
- if (!_wcsicmp (lpName, L"temp") || !_wcsicmp (lpName, L"tmp"))
- {
- if (!GetShortPathNameW(DstValue.Buffer, ShortName, MAX_PATH))
- {
- DPRINT1("GetShortPathNameW() failed for %S (Error %lu)\n",
DstValue.Buffer, GetLastError());
- if (Buffer) LocalFree(Buffer);
- return FALSE;
- }
-
- DPRINT("Buffer: %S\n", ShortName);
- RtlInitUnicodeString(&DstValue,
- ShortName);
- }
-
- RtlInitUnicodeString(&Name,
- lpName);
-
- DPRINT("Value: %wZ\n", &DstValue);
-
- Status = RtlSetEnvironmentVariable((PWSTR*)Environment,
- &Name,
- &DstValue);
-
- if (Buffer) LocalFree(Buffer);
-
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("RtlSetEnvironmentVariable() failed (Status %lx)\n", Status);
- return FALSE;
- }
-
- return TRUE;
+SetUserEnvironmentVariable(LPVOID *Environment,
+ LPWSTR lpName,
+ LPWSTR lpValue,
+ BOOL bExpand)
+{
+ WCHAR ShortName[MAX_PATH];
+ UNICODE_STRING Name;
+ UNICODE_STRING SrcValue;
+ UNICODE_STRING DstValue;
+ ULONG Length;
+ NTSTATUS Status;
+ PVOID Buffer = NULL;
+
+ if (bExpand)
+ {
+ RtlInitUnicodeString(&SrcValue,
+ lpValue);
+
+ Length = 2 * MAX_PATH * sizeof(WCHAR);
+
+ DstValue.Length = 0;
+ DstValue.MaximumLength = Length;
+ DstValue.Buffer = Buffer = LocalAlloc(LPTR,
+ Length);
+ if (DstValue.Buffer == NULL)
+ {
+ DPRINT1("LocalAlloc() failed\n");
+ return FALSE;
+ }
+
+ Status = RtlExpandEnvironmentStrings_U((PWSTR)*Environment,
+ &SrcValue,
+ &DstValue,
+ &Length);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("RtlExpandEnvironmentStrings_U() failed (Status %lx)\n",
Status);
+ DPRINT1("Length %lu\n", Length);
+ if (Buffer)
+ LocalFree(Buffer);
+ return FALSE;
+ }
+ }
+ else
+ {
+ RtlInitUnicodeString(&DstValue,
+ lpValue);
+ }
+
+ if (!_wcsicmp(lpName, L"temp") || !_wcsicmp(lpName, L"tmp"))
+ {
+ if (!GetShortPathNameW(DstValue.Buffer, ShortName, MAX_PATH))
+ {
+ DPRINT1("GetShortPathNameW() failed for %S (Error %lu)\n",
DstValue.Buffer, GetLastError());
+ if (Buffer)
+ LocalFree(Buffer);
+ return FALSE;
+ }
+
+ DPRINT("Buffer: %S\n", ShortName);
+ RtlInitUnicodeString(&DstValue,
+ ShortName);
+ }
+
+ RtlInitUnicodeString(&Name,
+ lpName);
+
+ DPRINT("Value: %wZ\n", &DstValue);
+
+ Status = RtlSetEnvironmentVariable((PWSTR*)Environment,
+ &Name,
+ &DstValue);
+
+ if (Buffer)
+ LocalFree(Buffer);
+
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("RtlSetEnvironmentVariable() failed (Status %lx)\n", Status);
+ return FALSE;
+ }
+
+ return TRUE;
}
static BOOL
-AppendUserEnvironmentVariable (LPVOID *Environment,
- LPWSTR lpName,
- LPWSTR lpValue)
-{
- UNICODE_STRING Name;
- UNICODE_STRING Value;
- NTSTATUS Status;
-
- RtlInitUnicodeString (&Name,
- lpName);
-
- Value.Length = 0;
- Value.MaximumLength = 1024 * sizeof(WCHAR);
- Value.Buffer = LocalAlloc (LPTR,
- 1024 * sizeof(WCHAR));
- if (Value.Buffer == NULL)
- {
- return FALSE;
- }
- Value.Buffer[0] = UNICODE_NULL;
-
- Status = RtlQueryEnvironmentVariable_U ((PWSTR)*Environment,
- &Name,
- &Value);
- if (NT_SUCCESS(Status))
- {
- RtlAppendUnicodeToString (&Value,
- L";");
- }
-
- RtlAppendUnicodeToString (&Value,
- lpValue);
-
- Status = RtlSetEnvironmentVariable ((PWSTR*)Environment,
- &Name,
- &Value);
- LocalFree (Value.Buffer);
- if (!NT_SUCCESS(Status))
- {
- DPRINT1 ("RtlSetEnvironmentVariable() failed (Status %lx)\n", Status);
- return FALSE;
- }
-
- return TRUE;
+AppendUserEnvironmentVariable(LPVOID *Environment,
+ LPWSTR lpName,
+ LPWSTR lpValue)
+{
+ UNICODE_STRING Name;
+ UNICODE_STRING Value;
+ NTSTATUS Status;
+
+ RtlInitUnicodeString(&Name,
+ lpName);
+
+ Value.Length = 0;
+ Value.MaximumLength = 1024 * sizeof(WCHAR);
+ Value.Buffer = LocalAlloc(LPTR,
+ 1024 * sizeof(WCHAR));
+ if (Value.Buffer == NULL)
+ {
+ return FALSE;
+ }
+ Value.Buffer[0] = UNICODE_NULL;
+
+ Status = RtlQueryEnvironmentVariable_U((PWSTR)*Environment,
+ &Name,
+ &Value);
+ if (NT_SUCCESS(Status))
+ {
+ RtlAppendUnicodeToString(&Value,
+ L";");
+ }
+
+ RtlAppendUnicodeToString(&Value,
+ lpValue);
+
+ Status = RtlSetEnvironmentVariable((PWSTR*)Environment,
+ &Name,
+ &Value);
+ LocalFree(Value.Buffer);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("RtlSetEnvironmentVariable() failed (Status %lx)\n", Status);
+ return FALSE;
+ }
+
+ return TRUE;
}
static HKEY
-GetCurrentUserKey (HANDLE hToken)
-{
- UNICODE_STRING SidString;
- HKEY hKey;
- LONG Error;
-
- if (!GetUserSidFromToken (hToken,
- &SidString))
- {
- DPRINT1 ("GetUserSidFromToken() failed\n");
- return NULL;
- }
-
- Error = RegOpenKeyExW (HKEY_USERS,
- SidString.Buffer,
- 0,
- MAXIMUM_ALLOWED,
- &hKey);
- if (Error != ERROR_SUCCESS)
- {
- DPRINT1 ("RegOpenKeyExW() failed (Error %ld)\n", Error);
- RtlFreeUnicodeString (&SidString);
- SetLastError((DWORD)Error);
- return NULL;
- }
-
- RtlFreeUnicodeString (&SidString);
-
- return hKey;
+GetCurrentUserKey(HANDLE hToken)
+{
+ UNICODE_STRING SidString;
+ HKEY hKey;
+ LONG Error;
+
+ if (!GetUserSidFromToken(hToken,
+ &SidString))
+ {
+ DPRINT1("GetUserSidFromToken() failed\n");
+ return NULL;
+ }
+
+ Error = RegOpenKeyExW(HKEY_USERS,
+ SidString.Buffer,
+ 0,
+ MAXIMUM_ALLOWED,
+ &hKey);
+ if (Error != ERROR_SUCCESS)
+ {
+ DPRINT1("RegOpenKeyExW() failed (Error %ld)\n", Error);
+ RtlFreeUnicodeString(&SidString);
+ SetLastError((DWORD)Error);
+ return NULL;
+ }
+
+ RtlFreeUnicodeString(&SidString);
+
+ return hKey;
}
static BOOL
-SetUserEnvironment (LPVOID *lpEnvironment,
- HKEY hKey,
- LPWSTR lpSubKeyName)
-{
- HKEY hEnvKey;
- DWORD dwValues;
- DWORD dwMaxValueNameLength;
- DWORD dwMaxValueDataLength;
- DWORD dwValueNameLength;
- DWORD dwValueDataLength;
- DWORD dwType;
- DWORD i;
- LPWSTR lpValueName;
- LPWSTR lpValueData;
- LONG Error;
-
- Error = RegOpenKeyExW (hKey,
- lpSubKeyName,
- 0,
- KEY_QUERY_VALUE,
- &hEnvKey);
- if (Error != ERROR_SUCCESS)
- {
- DPRINT1 ("RegOpenKeyExW() failed (Error %ld)\n", Error);
- SetLastError((DWORD)Error);
- return FALSE;
- }
-
- Error = RegQueryInfoKey (hEnvKey,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- &dwValues,
- &dwMaxValueNameLength,
- &dwMaxValueDataLength,
- NULL,
- NULL);
- if (Error != ERROR_SUCCESS)
- {
- DPRINT1 ("RegQueryInforKey() failed (Error %ld)\n", Error);
- RegCloseKey (hEnvKey);
- SetLastError((DWORD)Error);
- return FALSE;
- }
-
- if (dwValues == 0)
- {
- RegCloseKey (hEnvKey);
- return TRUE;
- }
-
- /* Allocate buffers */
- lpValueName = LocalAlloc (LPTR,
- dwMaxValueNameLength * sizeof(WCHAR));
- if (lpValueName == NULL)
- {
- RegCloseKey (hEnvKey);
- return FALSE;
- }
-
- lpValueData = LocalAlloc (LPTR,
- dwMaxValueDataLength);
- if (lpValueData == NULL)
- {
- LocalFree (lpValueName);
- RegCloseKey (hEnvKey);
- return FALSE;
- }
-
- /* Enumerate values */
- for (i = 0; i < dwValues; i++)
- {
- dwValueNameLength = dwMaxValueNameLength;
- dwValueDataLength = dwMaxValueDataLength;
- RegEnumValueW (hEnvKey,
- i,
- lpValueName,
- &dwValueNameLength,
- NULL,
- &dwType,
- (LPBYTE)lpValueData,
- &dwValueDataLength);
-
- if (!_wcsicmp (lpValueName, L"path"))
- {
- /* Append 'Path' environment variable */
- AppendUserEnvironmentVariable (lpEnvironment,
- lpValueName,
- lpValueData);
- }
- else
- {
- /* Set environment variable */
- SetUserEnvironmentVariable (lpEnvironment,
- lpValueName,
- lpValueData,
- (dwType == REG_EXPAND_SZ));
- }
- }
-
- LocalFree (lpValueData);
- LocalFree (lpValueName);
- RegCloseKey (hEnvKey);
-
- return TRUE;
+SetUserEnvironment(LPVOID *lpEnvironment,
+ HKEY hKey,
+ LPWSTR lpSubKeyName)
+{
+ HKEY hEnvKey;
+ DWORD dwValues;
+ DWORD dwMaxValueNameLength;
+ DWORD dwMaxValueDataLength;
+ DWORD dwValueNameLength;
+ DWORD dwValueDataLength;
+ DWORD dwType;
+ DWORD i;
+ LPWSTR lpValueName;
+ LPWSTR lpValueData;
+ LONG Error;
+
+ Error = RegOpenKeyExW(hKey,
+ lpSubKeyName,
+ 0,
+ KEY_QUERY_VALUE,
+ &hEnvKey);
+ if (Error != ERROR_SUCCESS)
+ {
+ DPRINT1("RegOpenKeyExW() failed (Error %ld)\n", Error);
+ SetLastError((DWORD)Error);
+ return FALSE;
+ }
+
+ Error = RegQueryInfoKey(hEnvKey,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ &dwValues,
+ &dwMaxValueNameLength,
+ &dwMaxValueDataLength,
+ NULL,
+ NULL);
+ if (Error != ERROR_SUCCESS)
+ {
+ DPRINT1("RegQueryInforKey() failed (Error %ld)\n", Error);
+ RegCloseKey(hEnvKey);
+ SetLastError((DWORD)Error);
+ return FALSE;
+ }
+
+ if (dwValues == 0)
+ {
+ RegCloseKey(hEnvKey);
+ return TRUE;
+ }
+
+ /* Allocate buffers */
+ lpValueName = LocalAlloc(LPTR,
+ dwMaxValueNameLength * sizeof(WCHAR));
+ if (lpValueName == NULL)
+ {
+ RegCloseKey(hEnvKey);
+ return FALSE;
+ }
+
+ lpValueData = LocalAlloc(LPTR,
+ dwMaxValueDataLength);
+ if (lpValueData == NULL)
+ {
+ LocalFree(lpValueName);
+ RegCloseKey(hEnvKey);
+ return FALSE;
+ }
+
+ /* Enumerate values */
+ for (i = 0; i < dwValues; i++)
+ {
+ dwValueNameLength = dwMaxValueNameLength;
+ dwValueDataLength = dwMaxValueDataLength;
+ RegEnumValueW(hEnvKey,
+ i,
+ lpValueName,
+ &dwValueNameLength,
+ NULL,
+ &dwType,
+ (LPBYTE)lpValueData,
+ &dwValueDataLength);
+
+ if (!_wcsicmp (lpValueName, L"path"))
+ {
+ /* Append 'Path' environment variable */
+ AppendUserEnvironmentVariable(lpEnvironment,
+ lpValueName,
+ lpValueData);
+ }
+ else
+ {
+ /* Set environment variable */
+ SetUserEnvironmentVariable(lpEnvironment,
+ lpValueName,
+ lpValueData,
+ (dwType == REG_EXPAND_SZ));
+ }
+ }
+
+ LocalFree(lpValueData);
+ LocalFree(lpValueName);
+ RegCloseKey(hEnvKey);
+
+ return TRUE;
}
BOOL WINAPI
-CreateEnvironmentBlock (LPVOID *lpEnvironment,
- HANDLE hToken,
- BOOL bInherit)
-{
- WCHAR Buffer[MAX_PATH];
- DWORD Length;
- HKEY hKeyUser;
- NTSTATUS Status;
-
- DPRINT("CreateEnvironmentBlock() called\n");
-
- if (lpEnvironment == NULL)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
-
- Status = RtlCreateEnvironment ((BOOLEAN)bInherit,
- (PWSTR*)lpEnvironment);
- if (!NT_SUCCESS (Status))
- {
- DPRINT1 ("RtlCreateEnvironment() failed (Status %lx)\n", Status);
- SetLastError (RtlNtStatusToDosError (Status));
- return FALSE;
- }
-
- /* Set 'COMPUTERNAME' variable */
- Length = MAX_PATH;
- if (GetComputerNameW (Buffer,
- &Length))
- {
- SetUserEnvironmentVariable(lpEnvironment,
- L"COMPUTERNAME",
- Buffer,
- FALSE);
- }
-
- if (hToken == NULL)
+CreateEnvironmentBlock(LPVOID *lpEnvironment,
+ HANDLE hToken,
+ BOOL bInherit)
+{
+ WCHAR Buffer[MAX_PATH];
+ DWORD Length;
+ HKEY hKeyUser;
+ NTSTATUS Status;
+
+ DPRINT("CreateEnvironmentBlock() called\n");
+
+ if (lpEnvironment == NULL)
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+
+ Status = RtlCreateEnvironment((BOOLEAN)bInherit,
+ (PWSTR*)lpEnvironment);
+ if (!NT_SUCCESS (Status))
+ {
+ DPRINT1("RtlCreateEnvironment() failed (Status %lx)\n", Status);
+ SetLastError(RtlNtStatusToDosError(Status));
+ return FALSE;
+ }
+
+ /* Set 'COMPUTERNAME' variable */
+ Length = MAX_PATH;
+ if (GetComputerNameW(Buffer,
+ &Length))
+ {
+ SetUserEnvironmentVariable(lpEnvironment,
+ L"COMPUTERNAME",
+ Buffer,
+ FALSE);
+ }
+
+ if (hToken == NULL)
+ return TRUE;
+
+ hKeyUser = GetCurrentUserKey(hToken);
+ if (hKeyUser == NULL)
+ {
+ DPRINT1("GetCurrentUserKey() failed\n");
+ RtlDestroyEnvironment(*lpEnvironment);
+ return FALSE;
+ }
+
+ /* Set 'ALLUSERSPROFILE' variable */
+ Length = MAX_PATH;
+ if (GetAllUsersProfileDirectoryW(Buffer,
+ &Length))
+ {
+ SetUserEnvironmentVariable(lpEnvironment,
+ L"ALLUSERSPROFILE",
+ Buffer,
+ FALSE);
+ }
+
+ /* Set 'USERPROFILE' variable */
+ Length = MAX_PATH;
+ if (GetUserProfileDirectoryW(hToken,
+ Buffer,
+ &Length))
+ {
+ SetUserEnvironmentVariable(lpEnvironment,
+ L"USERPROFILE",
+ Buffer,
+ FALSE);
+ }
+
+ /* FIXME: Set 'USERDOMAIN' variable */
+
+ Length = MAX_PATH;
+ if (GetUserNameW(Buffer,
+ &Length))
+ {
+ SetUserEnvironmentVariable(lpEnvironment,
+ L"USERNAME",
+ Buffer,
+ FALSE);
+ }
+
+
+
+ /* Set user environment variables */
+ SetUserEnvironment(lpEnvironment,
+ hKeyUser,
+ L"Environment");
+
+ RegCloseKey(hKeyUser);
+
return TRUE;
-
- hKeyUser = GetCurrentUserKey (hToken);
- if (hKeyUser == NULL)
- {
- DPRINT1 ("GetCurrentUserKey() failed\n");
- RtlDestroyEnvironment (*lpEnvironment);
- return FALSE;
- }
-
- /* Set 'ALLUSERSPROFILE' variable */
- Length = MAX_PATH;
- if (GetAllUsersProfileDirectoryW (Buffer,
- &Length))
- {
- SetUserEnvironmentVariable(lpEnvironment,
- L"ALLUSERSPROFILE",
- Buffer,
- FALSE);
- }
-
- /* Set 'USERPROFILE' variable */
- Length = MAX_PATH;
- if (GetUserProfileDirectoryW (hToken,
- Buffer,
- &Length))
- {
- SetUserEnvironmentVariable(lpEnvironment,
- L"USERPROFILE",
- Buffer,
- FALSE);
- }
-
- /* FIXME: Set 'USERDOMAIN' variable */
-
- Length = MAX_PATH;
- if (GetUserNameW(Buffer,
- &Length))
- {
- SetUserEnvironmentVariable(lpEnvironment,
- L"USERNAME",
- Buffer,
- FALSE);
- }
-
-
-
- /* Set user environment variables */
- SetUserEnvironment (lpEnvironment,
- hKeyUser,
- L"Environment");
-
- RegCloseKey (hKeyUser);
-
- return TRUE;
}
BOOL WINAPI
-DestroyEnvironmentBlock (LPVOID lpEnvironment)
-{
- DPRINT ("DestroyEnvironmentBlock() called\n");
-
- if (lpEnvironment == NULL)
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
-
- RtlDestroyEnvironment (lpEnvironment);
-
- return TRUE;
+DestroyEnvironmentBlock(LPVOID lpEnvironment)
+{
+ DPRINT("DestroyEnvironmentBlock() called\n");
+
+ if (lpEnvironment == NULL)
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+
+ RtlDestroyEnvironment(lpEnvironment);
+
+ return TRUE;
}