Author: ekohl
Date: Wed Apr  9 21:49:30 2014
New Revision: 62697

URL: http://svn.reactos.org/svn/reactos?rev=62697&view=rev
Log:
[USETUP]
Add a default pagefile entry to the registry.

Modified:
    trunk/reactos/base/setup/usetup/interface/usetup.c
    trunk/reactos/base/setup/usetup/registry.c
    trunk/reactos/base/setup/usetup/registry.h

Modified: trunk/reactos/base/setup/usetup/interface/usetup.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/interface/usetup.c?rev=62697&r1=62696&r2=62697&view=diff
==============================================================================
--- trunk/reactos/base/setup/usetup/interface/usetup.c  [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/interface/usetup.c  [iso-8859-1] Wed Apr  9 
21:49:30 2014
@@ -70,6 +70,8 @@
 static UNICODE_STRING DestinationArcPath;
 static UNICODE_STRING DestinationRootPath;
 
+static WCHAR DestinationDriveLetter;
+
 /* Path to the active partition (boot manager) */
 static UNICODE_STRING SystemRootPath;
 
@@ -1588,6 +1590,8 @@
                                    0ULL,
                                    TRUE);
             }
+
+            DestinationDriveLetter = 
(WCHAR)PartitionList->CurrentPartition->DriveLetter[0];
 
             return SELECT_FILE_SYSTEM_PAGE;
         }
@@ -3335,6 +3339,9 @@
         return QUIT_PAGE;
     }
 
+    /* Set the default pagefile entry */
+    SetDefaultPagefile(DestinationDriveLetter);
+
     /* Update the mounted devices list */
     SetMountedDeviceValues(PartitionList);
 

Modified: trunk/reactos/base/setup/usetup/registry.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/registry.c?rev=62697&r1=62696&r2=62697&view=diff
==============================================================================
--- trunk/reactos/base/setup/usetup/registry.c  [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/registry.c  [iso-8859-1] Wed Apr  9 
21:49:30 2014
@@ -763,4 +763,38 @@
   return TRUE;
 }
 
+
+VOID
+SetDefaultPagefile(WCHAR Drive)
+{
+    OBJECT_ATTRIBUTES ObjectAttributes;
+    UNICODE_STRING KeyName = 
RTL_CONSTANT_STRING(L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\Session
 Manager\\Memory Management");
+    UNICODE_STRING ValueName = RTL_CONSTANT_STRING(L"PagingFiles");
+    WCHAR ValueBuffer[] = L"?:\\pagefile.sys 0 0\0";
+    HANDLE KeyHandle;
+    NTSTATUS Status;
+
+    InitializeObjectAttributes(&ObjectAttributes,
+                               &KeyName,
+                               OBJ_CASE_INSENSITIVE,
+                               NULL,
+                               NULL);
+    Status = NtOpenKey(&KeyHandle,
+                       KEY_ALL_ACCESS,
+                       &ObjectAttributes);
+    if (!NT_SUCCESS(Status))
+        return;
+
+    ValueBuffer[0] = Drive;
+
+    NtSetValueKey(KeyHandle,
+                  &ValueName,
+                  0,
+                  REG_MULTI_SZ,
+                  (PVOID)&ValueBuffer,
+                  sizeof(ValueBuffer));
+
+    NtClose(KeyHandle);
+}
+
 /* EOF */

Modified: trunk/reactos/base/setup/usetup/registry.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/registry.h?rev=62697&r1=62696&r2=62697&view=diff
==============================================================================
--- trunk/reactos/base/setup/usetup/registry.h  [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/registry.h  [iso-8859-1] Wed Apr  9 
21:49:30 2014
@@ -38,4 +38,7 @@
 BOOLEAN
 SetMountedDeviceValue(CHAR Letter, ULONG Signature, LARGE_INTEGER 
StartingOffset);
 
+VOID
+SetDefaultPagefile(WCHAR Drive);
+
 /* EOF */


Reply via email to