Author: hbelusca Date: Mon Jan 5 22:24:56 2015 New Revision: 65988
URL: http://svn.reactos.org/svn/reactos?rev=65988&view=rev Log: [FREELDR]: Make RamDiskLoadVirtualFile returning a BOOLEAN such that if we fail to load a Ram disk image, we can display an error message and abort boot.
Modified: trunk/reactos/boot/freeldr/freeldr/disk/ramdisk.c trunk/reactos/boot/freeldr/freeldr/include/ramdisk.h trunk/reactos/boot/freeldr/freeldr/windows/setupldr.c trunk/reactos/boot/freeldr/freeldr/windows/winldr.c
Modified: trunk/reactos/boot/freeldr/freeldr/disk/ramdisk.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/disk/r... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/disk/ramdisk.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/disk/ramdisk.c [iso-8859-1] Mon Jan 5 22:24:56 2015 @@ -116,7 +116,7 @@ FsRegisterDevice("ramdisk(0)", &RamDiskVtbl); }
-VOID +BOOLEAN NTAPI RamDiskLoadVirtualFile(IN PCHAR FileName) { @@ -138,7 +138,7 @@ // RamFile = FsOpenFile(FileName); if (!RamFile) - return; + return FALSE;
// // Get the file size @@ -147,7 +147,7 @@ if (Status != ESUCCESS) { FsCloseFile(RamFile); - return; + return FALSE; }
// @@ -157,7 +157,7 @@ { UiMessageBox("RAM disk too big\n"); FsCloseFile(RamFile); - return; + return FALSE; } gRamDiskSize = Information.EndingAddress.LowPart;
@@ -174,7 +174,7 @@ { UiMessageBox("Failed to allocate memory for RAM disk\n"); FsCloseFile(RamFile); - return; + return FALSE; }
// @@ -222,8 +222,8 @@ gRamDiskBase = NULL; gRamDiskSize = 0; FsCloseFile(RamFile); - UiMessageBox("Failed to read RamDisk\n"); - return; + UiMessageBox("Failed to read RAM disk\n"); + return FALSE; } }
@@ -231,4 +231,6 @@
// Register a new device for the ramdisk FsRegisterDevice("ramdisk(0)", &RamDiskVtbl); -} + + return TRUE; +}
Modified: trunk/reactos/boot/freeldr/freeldr/include/ramdisk.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/ramdisk.h [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/include/ramdisk.h [iso-8859-1] Mon Jan 5 22:24:56 2015 @@ -11,7 +11,7 @@ // // Ramdisk Routines // -VOID +BOOLEAN NTAPI RamDiskLoadVirtualFile( IN PCHAR FileName
Modified: trunk/reactos/boot/freeldr/freeldr/windows/setupldr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/window... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/windows/setupldr.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/windows/setupldr.c [iso-8859-1] Mon Jan 5 22:24:56 2015 @@ -237,7 +237,11 @@ *strstr(FileName, " ") = ANSI_NULL;
/* Load the ramdisk */ - RamDiskLoadVirtualFile(FileName); + if (!RamDiskLoadVirtualFile(FileName)) + { + UiMessageBox("Failed to load RAM disk file %s\n", FileName); + return; + } }
TRACE("BootPath: '%s'\n", BootPath); @@ -252,7 +256,7 @@ SystemPath = SourcePaths[i]; if (!SystemPath) { - ERR("Failed to open txtsetup.sif\n"); + UiMessageBox("Failed to open txtsetup.sif\n"); return; } strcpy(File, SystemPath);
Modified: trunk/reactos/boot/freeldr/freeldr/windows/winldr.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/window... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/windows/winldr.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/windows/winldr.c [iso-8859-1] Mon Jan 5 22:24:56 2015 @@ -674,7 +674,11 @@ *strstr(FileName, " ") = ANSI_NULL;
/* Load the ramdisk */ - RamDiskLoadVirtualFile(FileName); + if (!RamDiskLoadVirtualFile(FileName)) + { + UiMessageBox("Failed to load RAM disk file %s\n", FileName); + return; + } }
/* Let user know we started loading */