Sample registry patch (inf taken from 2003 but also works with xp one;
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\sys\ControlSet001\Control\Class\{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}] "Class"="Ramdisk" @="Ramdisk" "Icon"="-5" [HKEY_LOCAL_MACHINE\sys\ControlSet001\Control\Class\{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}\0000] "InfPath"="ramdisk.inf" "InfSection"="BusInstall" "InfSectionExt"=".NT" "ProviderName"="Microsoft" "DriverDateData"=hex:00,40,2a,7c,dd,68,c2,01 "DriverDate"="10-1-2002" "DriverVersion"="5.2.3790.3959" "MatchingDeviceId"="ramdisk" "DriverDesc"="Windows RAM Disk Controller" [HKEY_LOCAL_MACHINE\sys\ControlSet001\Control\Class\{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}\0001] "InfPath"="ramdisk.inf" "InfSection"="VolumeInstall" "InfSectionExt"=".NT" "ProviderName"="Microsoft" "DriverDateData"=hex:00,40,2a,7c,dd,68,c2,01 "DriverDate"="10-1-2002" "DriverVersion"="5.2.3790.3959" "MatchingDeviceId"="ramdisk\\ramvolume" "DriverDesc"="Windows RAM Disk Device (volume)" [HKEY_LOCAL_MACHINE\sys\ControlSet001\Enum\Root\UNKNOWN] [HKEY_LOCAL_MACHINE\sys\ControlSet001\Enum\Root\UNKNOWN\0000] "ClassGUID"="{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}" "ConfigFlags"=dword:00000004 "Driver"="{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}\\0000" "Class"="Ramdisk" "Mfg"="Microsoft" "HardwareID"=hex(7):72,00,61,00,6d,00,64,00,69,00,73,00,6b,00,00,00,00,00 "CompatibleIDs"=hex(7):64,00,65,00,74,00,65,00,63,00,74,00,65,00,64,00,69,00,\ 6e,00,74,00,65,00,72,00,6e,00,61,00,6c,00,5c,00,72,00,61,00,6d,00,64,00,69,\ 00,73,00,6b,00,00,00,64,00,65,00,74,00,65,00,63,00,74,00,65,00,64,00,5c,00,\ 72,00,61,00,6d,00,64,00,69,00,73,00,6b,00,00,00,00,00 "Service"="Ramdisk" "DeviceDesc"="Windows RAM Disk Controller" "Capabilities"=dword:00000000 [HKEY_LOCAL_MACHINE\sys\ControlSet001\Enum\Root\UNKNOWN\0000\LogConf] [HKEY_LOCAL_MACHINE\sys\ControlSet001\Enum\Root\UNKNOWN\0000\Control] "ActiveService"="Ramdisk" [HKEY_LOCAL_MACHINE\sys\ControlSet001\Enum\Root\UNKNOWN\0001] "ClassGUID"="{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}" "Class"="Ramdisk" "ConfigFlags"=dword:00000004 "Driver"="{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}\\0001" "Mfg"="Microsoft" "HardwareID"=hex(7):72,00,61,00,6d,00,64,00,69,00,73,00,6b,00,5c,00,72,00,61,\ 00,6d,00,76,00,6f,00,6c,00,75,00,6d,00,65,00,00,00,00,00 "DeviceDesc"="Windows RAM Disk Device (volume)" "Capabilities"=dword:00000000 [HKEY_LOCAL_MACHINE\sys\ControlSet001\Enum\Root\UNKNOWN\0001\LogConf] [HKEY_LOCAL_MACHINE\sys\ControlSet001\Enum\Root\UNKNOWN\0001\Control] [HKEY_LOCAL_MACHINE\sys\ControlSet001\Services\Ramdisk] "Type"=dword:00000001 "Start"=dword:00000000 "ErrorControl"=dword:00000001 "ImagePath"="\\??\\C:\\WINDOWS\\SYSTEM32\\DRIVERS\\ramdisk.sys" "DisplayName"="Windows RAM Disk Driver" [HKEY_LOCAL_MACHINE\sys\ControlSet001\Services\Ramdisk\Debug] "DebugComponents"=dword:7fffffff "DebugLevel"=dword:00000005 [HKEY_LOCAL_MACHINE\sys\ControlSet001\Services\Ramdisk\Security] "Security"=hex:01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,\ 00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\ 00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\ 05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\ 20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,\ 00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,\ 00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00 [HKEY_LOCAL_MACHINE\sys\ControlSet001\Services\Ramdisk\Enum] "0"="Root\\UNKNOWN\\0000" "Count"=dword:00000001 "NextInstance"=dword:00000001
Adjust the path for winpe usage.
The size restriction on 512 Mb is in ntldr/setupldr.bin only. Ramdisk.sys can handle larger images, and some have said there is an absolute restriction on 2 Gb, with an actual user limit at around 1 Gb (some chineese users have reported success with around 1.7 Gb. See good explanation here; link1 and here; link2
Verification of this can be done with a modified ntldr found here (thank you JFX for pointing out); link3 and here; link4
This patched sample is the debug version of ntldr_dbg 5.2.3790.0. I'm currently trying to find the original ntldr_dbg 5.2.3790.0 to locate the patch and hopefully produce a custom patch for setupldr.bin too. For other interested souls, you may want to strip off the 16-bit stub in the beginning of ntldr/setupldr.bin. That way your favourite disassembler will produce much more friendly output. A good link about reversing ntldr; http://www.reteam.or....php/t-323.html
Important to remember is to add /pae to boot.ini. The author of the patch have mentioned /nodebug is a must too, but I have done it without that entry.
If i get some time, I may create a performance report with comparisons of ramdisk/firadisk/winvblock/disklessangel.
Joakim