[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.

svn path=/trunk/; revision=65988
This commit is contained in:
Hermès Bélusca-Maïto 2015-01-05 22:24:56 +00:00
parent 2bc6104f3d
commit bf3f878ee5
4 changed files with 21 additions and 11 deletions

View file

@ -116,7 +116,7 @@ RamDiskInitialize(VOID)
FsRegisterDevice("ramdisk(0)", &RamDiskVtbl);
}
VOID
BOOLEAN
NTAPI
RamDiskLoadVirtualFile(IN PCHAR FileName)
{
@ -138,7 +138,7 @@ RamDiskLoadVirtualFile(IN PCHAR FileName)
//
RamFile = FsOpenFile(FileName);
if (!RamFile)
return;
return FALSE;
//
// Get the file size
@ -147,7 +147,7 @@ RamDiskLoadVirtualFile(IN PCHAR FileName)
if (Status != ESUCCESS)
{
FsCloseFile(RamFile);
return;
return FALSE;
}
//
@ -157,7 +157,7 @@ RamDiskLoadVirtualFile(IN PCHAR FileName)
{
UiMessageBox("RAM disk too big\n");
FsCloseFile(RamFile);
return;
return FALSE;
}
gRamDiskSize = Information.EndingAddress.LowPart;
@ -174,7 +174,7 @@ RamDiskLoadVirtualFile(IN PCHAR FileName)
{
UiMessageBox("Failed to allocate memory for RAM disk\n");
FsCloseFile(RamFile);
return;
return FALSE;
}
//
@ -222,8 +222,8 @@ RamDiskLoadVirtualFile(IN PCHAR FileName)
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 @@ RamDiskLoadVirtualFile(IN PCHAR FileName)
// Register a new device for the ramdisk
FsRegisterDevice("ramdisk(0)", &RamDiskVtbl);
return TRUE;
}

View file

@ -11,7 +11,7 @@
//
// Ramdisk Routines
//
VOID
BOOLEAN
NTAPI
RamDiskLoadVirtualFile(
IN PCHAR FileName

View file

@ -237,7 +237,11 @@ LoadReactOSSetup(IN OperatingSystemItem* OperatingSystem,
*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 @@ LoadReactOSSetup(IN OperatingSystemItem* OperatingSystem,
SystemPath = SourcePaths[i];
if (!SystemPath)
{
ERR("Failed to open txtsetup.sif\n");
UiMessageBox("Failed to open txtsetup.sif\n");
return;
}
strcpy(File, SystemPath);

View file

@ -674,7 +674,11 @@ LoadAndBootWindows(IN OperatingSystemItem* OperatingSystem,
*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 */