[freeldr] ramdisk: allocate memory with right type
[reactos.git] / reactos / boot / freeldr / freeldr / disk / ramdisk.c
index 18397d6..19eaa78 100644 (file)
@@ -108,6 +108,14 @@ static const DEVVTBL RamDiskVtbl = {
     RamDiskSeek,
 };
 
+VOID
+NTAPI
+RamDiskInitialize(VOID)
+{
+    /* Setup the RAMDISK device */
+    FsRegisterDevice("ramdisk(0)", &RamDiskVtbl);
+}
+
 VOID
 NTAPI
 RamDiskLoadVirtualFile(IN PCHAR FileName)
@@ -156,8 +164,11 @@ RamDiskLoadVirtualFile(IN PCHAR FileName)
         // Allocate memory for it
         //
         ChunkSize = 8 * 1024 * 1024;
-        Percent = PercentPerChunk = 100 / (gRamDiskSize / ChunkSize);
-        gRamDiskBase = MmAllocateMemory(gRamDiskSize);
+        if (gRamDiskSize < ChunkSize)
+            Percent = PercentPerChunk = 0;
+        else
+            Percent = PercentPerChunk = 100 / (gRamDiskSize / ChunkSize);
+        gRamDiskBase = MmAllocateMemoryWithType(gRamDiskSize, LoaderXIPRom);
         if (!gRamDiskBase)
         {
             UiMessageBox("Failed to allocate memory for RAM disk\n");