From 7c7314849d73f4f1d0e1b94767e0fba1f3a51aca Mon Sep 17 00:00:00 2001 From: ReactOS Portable Systems Group Date: Sun, 17 Aug 2008 02:35:30 +0000 Subject: [PATCH] Make RAM disk support work on x86 as well (it is now generic): 1) Don't assert if loaded from setup. On NT this means special things, but we don't care about that for now. 2) Add to txtsetup.sif along with the other core FS drivers. This will eventually allow installing from ramdisk as well (and later, over the network) 3) Add to hivesys_i386.inf so that the driver is initialized. RAM disk now works flawlessly on x86 -- just make sure to follow the previous instructions, and add to your total memory available to ReactOS. svn path=/trunk/; revision=35402 --- reactos/boot/bootdata/hivesys_i386.inf | 11 +++++++++++ reactos/boot/bootdata/txtsetup.sif | 1 + reactos/drivers/storage/class/ramdisk/ramdisk.c | 5 +++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/reactos/boot/bootdata/hivesys_i386.inf b/reactos/boot/bootdata/hivesys_i386.inf index dc907b5e224..6ecad64091b 100644 --- a/reactos/boot/bootdata/hivesys_i386.inf +++ b/reactos/boot/bootdata/hivesys_i386.inf @@ -25,6 +25,10 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E975-E325-11CE-BFC1-08002BE103 HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E975-E325-11CE-BFC1-08002BE10318}","NoDisplayClass",0x00000000,"1" HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E975-E325-11CE-BFC1-08002BE10318}","NoInstallClass",0x00000000,"1" +HKLM,"SYSTEM\CurrentControlSet\Control\Class\{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}",,0x00000000,"Ramdisk" +HKLM,"SYSTEM\CurrentControlSet\Control\Class\{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}","Class",0x00000000,"Ramdisk" +HKLM,"SYSTEM\CurrentControlSet\Control\Class\{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}","Icon",0x00000000,"-5" + ; Default computer name settings HKLM,"SYSTEM\CurrentControlSet\Control\ComputerName",,0x00000012 HKLM,"SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName","ComputerName",0x00000002,"COMPUTERNAME" @@ -1025,6 +1029,13 @@ HKLM,"SYSTEM\CurrentControlSet\Services\fastfat","ImagePath",0x00020000,"system3 HKLM,"SYSTEM\CurrentControlSet\Services\fastfat","Start",0x00010001,0x00000000 HKLM,"SYSTEM\CurrentControlSet\Services\fastfat","Type",0x00010001,0x00000002 +; RAM Disk class driver +HKLM,"SYSTEM\CurrentControlSet\Services\RamDisk","ErrorControl",0x00010001,0x00000000 +HKLM,"SYSTEM\CurrentControlSet\Services\RamDisk","Group",0x00000000,"Boot File System" +HKLM,"SYSTEM\CurrentControlSet\Services\RamDisk","ImagePath",0x00020000,"system32\drivers\ramdisk.sys" +HKLM,"SYSTEM\CurrentControlSet\Services\RamDisk","Start",0x00010001,0x00000000 +HKLM,"SYSTEM\CurrentControlSet\Services\RamDisk","Type",0x00010001,0x00000002 + ; EXT2 Filesystem driver HKLM,"SYSTEM\CurrentControlSet\Services\Ext2fs","ErrorControl",0x00010001,0x00000000 HKLM,"SYSTEM\CurrentControlSet\Services\Ext2fs","Group",0x00000000,"Boot File System" diff --git a/reactos/boot/bootdata/txtsetup.sif b/reactos/boot/bootdata/txtsetup.sif index 1c1bcf39602..b9e1a50be2d 100644 --- a/reactos/boot/bootdata/txtsetup.sif +++ b/reactos/boot/bootdata/txtsetup.sif @@ -33,6 +33,7 @@ pci.sys=,,,,,,,,,,,,4 scsiport.sys=,,,,,,x,,,,,,4 uniata.sys=,,,,,,,,,,,,4 fastfat.sys=,,,,,,x,,,,,,4 +ramdisk.sys=,,,,,,x,,,,,,4 ext2.sys=,,,,,,x,,,,,,4 [HardwareIdsDatabase] diff --git a/reactos/drivers/storage/class/ramdisk/ramdisk.c b/reactos/drivers/storage/class/ramdisk/ramdisk.c index 0a15a6c1bb3..59f3d24ff43 100644 --- a/reactos/drivers/storage/class/ramdisk/ramdisk.c +++ b/reactos/drivers/storage/class/ramdisk/ramdisk.c @@ -2284,7 +2284,7 @@ RamdiskAddDevice(IN PDRIVER_OBJECT DriverObject, // // Are we being booted from setup? Not yet supported // - ASSERT (!KeLoaderBlock->SetupLdrBlock); + //ASSERT(!KeLoaderBlock->SetupLdrBlock); } // @@ -2308,6 +2308,7 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject, PCHAR BootDeviceName, CommandLine; PDEVICE_OBJECT PhysicalDeviceObject = NULL; NTSTATUS Status; + DPRINT1("RAM Disk Driver Initialized\n"); // // Query ramdisk parameters @@ -2399,7 +2400,7 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject, // // Installing from Ramdisk isn't supported yet // - ASSERT(!KeLoaderBlock->SetupLdrBlock); + //ASSERT(!KeLoaderBlock->SetupLdrBlock); // // Are we reporting the device