https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cacae6d9a0c5469c91614…
commit cacae6d9a0c5469c916143eb6abcf33c36f370bb
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Wed May 31 03:43:12 2017 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Jun 3 22:12:45 2018 +0200
[SETUPLIB][USETUP] Diverse additions.
- Use NT string safe functions.
- Add support for other bootloaders;
- Update a couple of comments;
- Remove deprecated __REACTOS__ #ifdefs.
svn path=/branches/setup_improvements/; revision=74713
---
base/setup/lib/fsutil.c | 10 +--
base/setup/lib/partlist.c | 54 ++++++++------
base/setup/lib/setuplib.h | 6 +-
base/setup/usetup/bootsup.c | 177 ++++++++++++++++++++++++++++++--------------
base/setup/usetup/usetup.rc | 7 +-
5 files changed, 164 insertions(+), 90 deletions(-)
diff --git a/base/setup/lib/fsutil.c b/base/setup/lib/fsutil.c
index b1f498a5ad..bec91c4988 100644
--- a/base/setup/lib/fsutil.c
+++ b/base/setup/lib/fsutil.c
@@ -127,11 +127,11 @@ _MyGetFileSystem(
FileFsAttribute = (PFILE_FS_ATTRIBUTE_INFORMATION)Buffer;
/* Set PartitionRootPath */
- swprintf(PathBuffer,
- // L"\\Device\\Harddisk%lu\\Partition%lu", // Should work! But
because ReactOS sucks atm. it actually doesn't work!!
- L"\\Device\\Harddisk%lu\\Partition%lu\\", // HACK: Use this as a
temporary hack!
- PartEntry->DiskEntry->DiskNumber,
- PartEntry->PartitionNumber);
+ RtlStringCchPrintfW(PathBuffer, ARRAYSIZE(PathBuffer),
+ // L"\\Device\\Harddisk%lu\\Partition%lu", // Should
work! But because ReactOS sucks atm. it actually doesn't work!!
+ L"\\Device\\Harddisk%lu\\Partition%lu\\", // HACK: Use
this as a temporary hack!
+ PartEntry->DiskEntry->DiskNumber,
+ PartEntry->PartitionNumber);
RtlInitUnicodeString(&PartitionRootPath, PathBuffer);
DPRINT("PartitionRootPath: %wZ\n", &PartitionRootPath);
diff --git a/base/setup/lib/partlist.c b/base/setup/lib/partlist.c
index f29b2859a6..71fd77a005 100644
--- a/base/setup/lib/partlist.c
+++ b/base/setup/lib/partlist.c
@@ -110,9 +110,9 @@ GetDriverName(
RtlInitUnicodeString(&DiskEntry->DriverName,
NULL);
- swprintf(KeyName,
- L"\\Scsi\\Scsi Port %hu",
- DiskEntry->Port);
+ RtlStringCchPrintfW(KeyName, ARRAYSIZE(KeyName),
+ L"\\Scsi\\Scsi Port %hu",
+ DiskEntry->Port);
RtlZeroMemory(&QueryTable,
sizeof(QueryTable));
@@ -366,7 +366,9 @@ EnumerateBiosDiskEntries(
AdapterCount = 0;
while (1)
{
- swprintf(Name, L"%s\\%lu", ROOT_NAME, AdapterCount);
+ RtlStringCchPrintfW(Name, ARRAYSIZE(Name),
+ L"%s\\%lu",
+ ROOT_NAME, AdapterCount);
Status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE,
Name,
&QueryTable[2],
@@ -377,7 +379,9 @@ EnumerateBiosDiskEntries(
break;
}
- swprintf(Name, L"%s\\%lu\\DiskController", ROOT_NAME, AdapterCount);
+ RtlStringCchPrintfW(Name, ARRAYSIZE(Name),
+ L"%s\\%lu\\DiskController",
+ ROOT_NAME, AdapterCount);
Status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE,
Name,
&QueryTable[2],
@@ -387,7 +391,9 @@ EnumerateBiosDiskEntries(
{
while (1)
{
- swprintf(Name, L"%s\\%lu\\DiskController\\0", ROOT_NAME,
AdapterCount);
+ RtlStringCchPrintfW(Name, ARRAYSIZE(Name),
+ L"%s\\%lu\\DiskController\\0",
+ ROOT_NAME, AdapterCount);
Status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE,
Name,
&QueryTable[2],
@@ -399,7 +405,9 @@ EnumerateBiosDiskEntries(
return;
}
- swprintf(Name, L"%s\\%lu\\DiskController\\0\\DiskPeripheral",
ROOT_NAME, AdapterCount);
+ RtlStringCchPrintfW(Name, ARRAYSIZE(Name),
+
L"%s\\%lu\\DiskController\\0\\DiskPeripheral",
+ ROOT_NAME, AdapterCount);
Status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE,
Name,
&QueryTable[2],
@@ -421,7 +429,9 @@ EnumerateBiosDiskEntries(
break;
}
- swprintf(Name,
L"%s\\%lu\\DiskController\\0\\DiskPeripheral\\%lu", ROOT_NAME, AdapterCount,
DiskCount);
+ RtlStringCchPrintfW(Name, ARRAYSIZE(Name),
+
L"%s\\%lu\\DiskController\\0\\DiskPeripheral\\%lu",
+ ROOT_NAME, AdapterCount, DiskCount);
Status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE,
Name,
QueryTable,
@@ -974,7 +984,8 @@ AddDiskToList(
}
Checksum = ~Checksum + 1;
- swprintf(Identifier, L"%08x-%08x-A", Checksum, Signature);
+ RtlStringCchPrintfW(Identifier, ARRAYSIZE(Identifier),
+ L"%08x-%08x-A", Checksum, Signature);
DPRINT("Identifier: %S\n", Identifier);
DiskEntry = RtlAllocateHeap(ProcessHeap,
@@ -1205,7 +1216,7 @@ CreatePartitionList(VOID)
List = (PPARTLIST)RtlAllocateHeap(ProcessHeap,
0,
- sizeof (PARTLIST));
+ sizeof(PARTLIST));
if (List == NULL)
return NULL;
@@ -1233,11 +1244,10 @@ CreatePartitionList(VOID)
for (DiskNumber = 0; DiskNumber < Sdi.NumberOfDisks; DiskNumber++)
{
- swprintf(Buffer,
- L"\\Device\\Harddisk%d\\Partition0",
- DiskNumber);
- RtlInitUnicodeString(&Name,
- Buffer);
+ RtlStringCchPrintfW(Buffer, ARRAYSIZE(Buffer),
+ L"\\Device\\Harddisk%lu\\Partition0",
+ DiskNumber);
+ RtlInitUnicodeString(&Name, Buffer);
InitializeObjectAttributes(&ObjectAttributes,
&Name,
@@ -2460,7 +2470,7 @@ DeleteCurrentPartition(
RtlFreeHeap(ProcessHeap, 0, PartEntry);
/* Remove the next entry */
- RemoveEntryList (&NextPartEntry->ListEntry);
+ RemoveEntryList(&NextPartEntry->ListEntry);
RtlFreeHeap(ProcessHeap, 0, NextPartEntry);
/* Update current partition */
@@ -2764,11 +2774,10 @@ WritePartitions(
DPRINT("WritePartitions() Disk: %lu\n", DiskEntry->DiskNumber);
- swprintf(DstPath,
- L"\\Device\\Harddisk%d\\Partition0",
- DiskEntry->DiskNumber);
- RtlInitUnicodeString(&Name,
- DstPath);
+ RtlStringCchPrintfW(DstPath, ARRAYSIZE(DstPath),
+ L"\\Device\\Harddisk%lu\\Partition0",
+ DiskEntry->DiskNumber);
+ RtlInitUnicodeString(&Name, DstPath);
InitializeObjectAttributes(&ObjectAttributes,
&Name,
0,
@@ -2865,7 +2874,8 @@ SetMountedDeviceValue(
NTSTATUS Status;
HANDLE KeyHandle;
- swprintf(ValueNameBuffer, L"\\DosDevices\\%C:", Letter);
+ RtlStringCchPrintfW(ValueNameBuffer, ARRAYSIZE(ValueNameBuffer),
+ L"\\DosDevices\\%C:", Letter);
RtlInitUnicodeString(&ValueName, ValueNameBuffer);
InitializeObjectAttributes(&ObjectAttributes,
diff --git a/base/setup/lib/setuplib.h b/base/setup/lib/setuplib.h
index a53fc3cb2d..bee6e9f87f 100644
--- a/base/setup/lib/setuplib.h
+++ b/base/setup/lib/setuplib.h
@@ -14,10 +14,7 @@
#define _INC_WINDOWS
#define COM_NO_WINDOWS_H
-#include <wingdi.h> // For LF_FACESIZE and TranslateCharsetInfo()
-#include <wincon.h>
-#include <winnls.h> // For code page support
-#include <winreg.h>
+#include <winxxx.h>
#endif
@@ -29,6 +26,7 @@ extern HANDLE ProcessHeap;
#include "linklist.h"
#include "ntverrsrc.h"
// #include "arcname.h"
+#include "bldrsup.h"
#include "filesup.h"
#include "fsutil.h"
#include "genlist.h"
diff --git a/base/setup/usetup/bootsup.c b/base/setup/usetup/bootsup.c
index b48d5c0e07..b59767131b 100644
--- a/base/setup/usetup/bootsup.c
+++ b/base/setup/usetup/bootsup.c
@@ -435,13 +435,13 @@ CreateFreeLoaderIniForReactOS(
static
NTSTATUS
CreateFreeLoaderIniForReactOSAndBootSector(
- PWCHAR IniPath,
- PWCHAR ArcPath,
- PWCHAR Section,
- PWCHAR Description,
- PWCHAR BootDrive,
- PWCHAR BootPartition,
- PWCHAR BootSector)
+ IN PCWSTR IniPath,
+ IN PCWSTR ArcPath,
+ IN PCWSTR Section,
+ IN PCWSTR Description,
+ IN PCWSTR BootDrive,
+ IN PCWSTR BootPartition,
+ IN PCWSTR BootSector)
{
PINICACHE IniCache;
PINICACHESECTION IniSection;
@@ -453,7 +453,7 @@ CreateFreeLoaderIniForReactOSAndBootSector(
CreateCommonFreeLoaderSections(IniCache);
/* Add the ReactOS entries */
- CreateFreeLoaderReactOSEntries(IniCache, ArcPath);
+ CreateFreeLoaderReactOSEntries(IniCache, (PWCHAR)ArcPath);
/* Get "Operating Systems" section */
IniSection = IniCacheGetSection(IniCache, L"Operating Systems");
@@ -462,11 +462,11 @@ CreateFreeLoaderIniForReactOSAndBootSector(
IniCacheInsertKey(IniSection,
NULL,
INSERT_LAST,
- Section,
- Description);
+ (PWCHAR)Section,
+ (PWCHAR)Description);
/* Create new section */
- IniSection = IniCacheAppendSection(IniCache, Section);
+ IniSection = IniCacheAppendSection(IniCache, (PWCHAR)Section);
/* BootType=BootSector */
IniCacheInsertKey(IniSection,
@@ -480,24 +480,24 @@ CreateFreeLoaderIniForReactOSAndBootSector(
NULL,
INSERT_LAST,
L"BootDrive",
- BootDrive);
+ (PWCHAR)BootDrive);
/* BootPartition= */
IniCacheInsertKey(IniSection,
NULL,
INSERT_LAST,
L"BootPartition",
- BootPartition);
+ (PWCHAR)BootPartition);
/* BootSector= */
IniCacheInsertKey(IniSection,
NULL,
INSERT_LAST,
L"BootSectorFile",
- BootSector);
+ (PWCHAR)BootSector);
/* Save the INI file */
- IniCacheSave(IniCache, IniPath);
+ IniCacheSave(IniCache, (PWCHAR)IniPath);
IniCacheDestroy(IniCache);
return STATUS_SUCCESS;
@@ -2260,9 +2260,9 @@ InstallFatBootcodeToPartition(
/* FAT or FAT32 partition */
DPRINT("System path: '%wZ'\n", SystemRootPath);
- /* Copy FreeLoader to the system partition */
+ /* Copy FreeLoader to the system partition, always overwriting the older version */
CombinePaths(SrcPath, ARRAYSIZE(SrcPath), 2, SourceRootPath->Buffer,
L"\\loader\\freeldr.sys");
- CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"\\freeldr.sys");
+ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"freeldr.sys");
DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath);
Status = SetupCopyFile(SrcPath, DstPath);
@@ -2272,8 +2272,8 @@ InstallFatBootcodeToPartition(
return Status;
}
- /* Prepare for possibly copying 'freeldr.ini' */
- CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"\\freeldr.ini");
+ /* Prepare for possibly updating 'freeldr.ini' */
+ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"freeldr.ini");
DoesFreeLdrExist = DoesFileExist(NULL, DstPath);
if (DoesFreeLdrExist)
@@ -2292,10 +2292,12 @@ InstallFatBootcodeToPartition(
/* Check for NT and other bootloaders */
// FIXME: Check for Vista+ bootloader!
- if (DoesFileExist_2(SystemRootPath->Buffer, L"ntldr") == TRUE ||
- DoesFileExist_2(SystemRootPath->Buffer, L"boot.ini") == TRUE)
+ /*** Status = FindNTOSBootLoader(PartitionHandle, NtLdr, &Version); ***/
+ /*** Status = FindNTOSBootLoader(PartitionHandle, BootMgr, &Version); ***/
+ if (DoesFileExist_2(SystemRootPath->Buffer, L"NTLDR") == TRUE ||
+ DoesFileExist_2(SystemRootPath->Buffer, L"BOOT.INI") == TRUE)
{
- /* Search root directory for 'ntldr' and 'boot.ini' */
+ /* Search root directory for 'NTLDR' and 'BOOT.INI' */
DPRINT1("Found Microsoft Windows NT/2000/XP boot loader\n");
/* Create or update 'freeldr.ini' */
@@ -2303,7 +2305,7 @@ InstallFatBootcodeToPartition(
{
/* Create new 'freeldr.ini' */
DPRINT1("Create new 'freeldr.ini'\n");
- // CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"\\freeldr.ini");
+ // CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"freeldr.ini");
Status = CreateFreeLoaderIniForReactOS(DstPath,
DestinationArcPath->Buffer);
if (!NT_SUCCESS(Status))
@@ -2313,7 +2315,7 @@ InstallFatBootcodeToPartition(
}
/* Install new bootcode into a file */
- CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"\\bootsect.ros");
+ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"bootsect.ros");
if (PartitionType == PARTITION_FAT32 ||
PartitionType == PARTITION_FAT32_XINT13)
@@ -2347,7 +2349,7 @@ InstallFatBootcodeToPartition(
}
/* Update 'boot.ini' */
- CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"\\boot.ini");
+ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"boot.ini");
DPRINT1("Update 'boot.ini': %S\n", DstPath);
Status = UpdateBootIni(DstPath,
@@ -2363,31 +2365,97 @@ InstallFatBootcodeToPartition(
{
/* Non-NT bootloaders: install our own bootloader */
- PWCHAR Section;
- PWCHAR Description;
- PWCHAR BootDrive;
- PWCHAR BootPartition;
- PWCHAR BootSector;
- PWCHAR BootSectorFileName;
+ PCWSTR Section;
+ PCWSTR Description;
+ PCWSTR BootDrive;
+ PCWSTR BootPartition;
+ PCWSTR BootSector;
- if (DoesFileExist_2(SystemRootPath->Buffer, L"io.sys") == TRUE ||
- DoesFileExist_2(SystemRootPath->Buffer, L"msdos.sys") == TRUE)
+ /* Search for COMPAQ MS-DOS 1.x (1.11, 1.12, based on MS-DOS 1.25) boot loader
*/
+ if (DoesFileExist_2(SystemRootPath->Buffer, L"IOSYS.COM") == TRUE
||
+ DoesFileExist_2(SystemRootPath->Buffer, L"MSDOS.COM") == TRUE)
+ {
+ DPRINT1("Found COMPAQ MS-DOS 1.x (1.11, 1.12) / MS-DOS 1.25 boot
loader\n");
+
+ Section = L"DOS";
+ Description = L"\"COMPAQ MS-DOS 1.x / MS-DOS 1.25\"";
+ BootDrive = L"hd0";
+ BootPartition = L"1";
+ BootSector = L"BOOTSECT.DOS";
+ }
+ else
+ /* Search for Microsoft DOS or Windows 9x boot loader */
+ if (DoesFileExist_2(SystemRootPath->Buffer, L"IO.SYS") == TRUE ||
+ DoesFileExist_2(SystemRootPath->Buffer, L"MSDOS.SYS") == TRUE)
+ // WINBOOT.SYS
{
- /* Search for root directory for 'io.sys' and 'msdos.sys' */
DPRINT1("Found Microsoft DOS or Windows 9x boot loader\n");
Section = L"DOS";
- Description = L"\"DOS/Windows\"";
+ Description = L"\"MS-DOS/Windows\"";
+ BootDrive = L"hd0";
+ BootPartition = L"1";
+ BootSector = L"BOOTSECT.DOS";
+ }
+ else
+ /* Search for IBM PC-DOS or DR-DOS 5.x boot loader */
+ if (DoesFileExist_2(SystemRootPath->Buffer, L"IBMIO.COM" ) == TRUE
|| // Some people refer to this file instead of
IBMBIO.COM...
+ DoesFileExist_2(SystemRootPath->Buffer, L"IBMBIO.COM") == TRUE
||
+ DoesFileExist_2(SystemRootPath->Buffer, L"IBMDOS.COM") == TRUE)
+ {
+ DPRINT1("Found IBM PC-DOS or DR-DOS 5.x or IBM OS/2 1.0\n");
+
+ Section = L"DOS";
+ Description = L"\"IBM PC-DOS or DR-DOS 5.x or IBM OS/2
1.0\"";
BootDrive = L"hd0";
BootPartition = L"1";
BootSector = L"BOOTSECT.DOS";
+ }
+ else
+ /* Search for DR-DOS 3.x boot loader */
+ if (DoesFileExist_2(SystemRootPath->Buffer, L"DRBIOS.SYS") == TRUE
||
+ DoesFileExist_2(SystemRootPath->Buffer, L"DRBDOS.SYS") == TRUE)
+ {
+ DPRINT1("Found DR-DOS 3.x\n");
+
+ Section = L"DOS";
+ Description = L"\"DR-DOS 3.x\"";
+ BootDrive = L"hd0";
+ BootPartition = L"1";
+ BootSector = L"BOOTSECT.DOS";
+ }
+ else
+ /* Search for MS OS/2 1.x */
+ if (DoesFileExist_2(SystemRootPath->Buffer, L"OS2BOOT.COM") == TRUE
||
+ DoesFileExist_2(SystemRootPath->Buffer, L"OS2BIO.COM" ) == TRUE
||
+ DoesFileExist_2(SystemRootPath->Buffer, L"OS2DOS.COM" ) ==
TRUE)
+ {
+ DPRINT1("Found MS OS/2 1.x\n");
+
+ Section = L"DOS";
+ Description = L"\"MS OS/2 1.x\"";
+ BootDrive = L"hd0";
+ BootPartition = L"1";
+ BootSector = L"BOOTSECT.OS2";
+ }
+ else
+ /* Search for MS or IBM OS/2 */
+ if (DoesFileExist_2(SystemRootPath->Buffer, L"OS2BOOT") == TRUE ||
+ DoesFileExist_2(SystemRootPath->Buffer, L"OS2LDR" ) == TRUE ||
+ DoesFileExist_2(SystemRootPath->Buffer, L"OS2KRNL") == TRUE)
+ {
+ DPRINT1("Found MS/IBM OS/2\n");
- BootSectorFileName = L"\\bootsect.dos";
+ Section = L"DOS";
+ Description = L"\"MS/IBM OS/2\"";
+ BootDrive = L"hd0";
+ BootPartition = L"1";
+ BootSector = L"BOOTSECT.OS2";
}
else
+ /* Search for FreeDOS boot loader */
if (DoesFileExist_2(SystemRootPath->Buffer, L"kernel.sys") == TRUE)
{
- /* Search for root directory for 'kernel.sys' */
DPRINT1("Found FreeDOS boot loader\n");
Section = L"DOS";
@@ -2395,8 +2463,6 @@ InstallFatBootcodeToPartition(
BootDrive = L"hd0";
BootPartition = L"1";
BootSector = L"BOOTSECT.DOS";
-
- BootSectorFileName = L"\\bootsect.dos";
}
else
{
@@ -2408,8 +2474,6 @@ InstallFatBootcodeToPartition(
BootDrive = L"hd0";
BootPartition = L"1";
BootSector = L"BOOTSECT.OLD";
-
- BootSectorFileName = L"\\bootsect.old";
}
/* Create or update 'freeldr.ini' */
@@ -2417,7 +2481,7 @@ InstallFatBootcodeToPartition(
{
/* Create new 'freeldr.ini' */
DPRINT1("Create new 'freeldr.ini'\n");
- // CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"\\freeldr.ini");
+ // CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"freeldr.ini");
if (IsThereAValidBootSector(SystemRootPath->Buffer))
{
@@ -2432,7 +2496,7 @@ InstallFatBootcodeToPartition(
}
/* Save current bootsector */
- CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
BootSectorFileName);
+ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
BootSector);
DPRINT1("Save bootsector: %S ==> %S\n",
SystemRootPath->Buffer, DstPath);
Status = SaveBootSector(SystemRootPath->Buffer, DstPath, SECTORSIZE);
@@ -2502,9 +2566,9 @@ InstallExt2BootcodeToPartition(
/* EXT2 partition */
DPRINT("System path: '%wZ'\n", SystemRootPath);
- /* Copy FreeLoader to the system partition */
+ /* Copy FreeLoader to the system partition, always overwriting the older version */
CombinePaths(SrcPath, ARRAYSIZE(SrcPath), 2, SourceRootPath->Buffer,
L"\\loader\\freeldr.sys");
- CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"\\freeldr.sys");
+ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"freeldr.sys");
DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath);
Status = SetupCopyFile(SrcPath, DstPath);
@@ -2515,7 +2579,7 @@ InstallExt2BootcodeToPartition(
}
/* Prepare for possibly copying 'freeldr.ini' */
- CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"\\freeldr.ini");
+ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"freeldr.ini");
DoesFreeLdrExist = DoesFileExist(NULL, DstPath);
if (DoesFreeLdrExist)
@@ -2545,10 +2609,12 @@ InstallExt2BootcodeToPartition(
if (IsThereAValidBootSector(SystemRootPath->Buffer))
{
+ PCWSTR BootSector = L"BOOTSECT.OLD";
+
Status = CreateFreeLoaderIniForReactOSAndBootSector(
DstPath, DestinationArcPath->Buffer,
L"Linux", L"\"Linux\"",
- L"hd0", L"1", L"BOOTSECT.OLD");
+ L"hd0", L"1", BootSector);
if (!NT_SUCCESS(Status))
{
DPRINT1("CreateFreeLoaderIniForReactOSAndBootSector() failed (Status
%lx)\n", Status);
@@ -2556,7 +2622,7 @@ InstallExt2BootcodeToPartition(
}
/* Save current bootsector */
- CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
L"\\bootsect.old");
+ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer,
BootSector);
DPRINT1("Save bootsector: %S ==> %S\n",
SystemRootPath->Buffer, DstPath);
Status = SaveBootSector(SystemRootPath->Buffer, DstPath,
sizeof(EXT2_BOOTSECTOR));
@@ -2627,6 +2693,7 @@ InstallVBRToPartition(
}
case PARTITION_IFS:
+ DPRINT1("Partitions of type NTFS or HPFS are not supported
yet!\n");
break;
default:
@@ -2645,7 +2712,7 @@ InstallFatBootcodeToFloppy(
{
NTSTATUS Status;
PFILE_SYSTEM FatFS;
- UNICODE_STRING FloppyDevice = RTL_CONSTANT_STRING(L"\\Device\\Floppy0");
+ UNICODE_STRING FloppyDevice = RTL_CONSTANT_STRING(L"\\Device\\Floppy0\\");
WCHAR SrcPath[MAX_PATH];
WCHAR DstPath[MAX_PATH];
@@ -2670,8 +2737,7 @@ InstallFatBootcodeToFloppy(
/* Copy FreeLoader to the boot partition */
CombinePaths(SrcPath, ARRAYSIZE(SrcPath), 2, SourceRootPath->Buffer,
L"\\loader\\freeldr.sys");
-
- RtlStringCchCopyW(DstPath, ARRAYSIZE(DstPath),
L"\\Device\\Floppy0\\freeldr.sys");
+ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, FloppyDevice.Buffer,
L"freeldr.sys");
DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath);
Status = SetupCopyFile(SrcPath, DstPath);
@@ -2682,7 +2748,7 @@ InstallFatBootcodeToFloppy(
}
/* Create new 'freeldr.ini' */
- RtlStringCchCopyW(DstPath, ARRAYSIZE(DstPath),
L"\\Device\\Floppy0\\freeldr.ini");
+ CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, FloppyDevice.Buffer,
L"freeldr.ini");
DPRINT("Create new 'freeldr.ini'\n");
Status = CreateFreeLoaderIniForReactOS(DstPath, DestinationArcPath->Buffer);
@@ -2692,16 +2758,15 @@ InstallFatBootcodeToFloppy(
return Status;
}
- /* Install FAT12/16 boosector */
+ /* Install FAT12 boosector */
CombinePaths(SrcPath, ARRAYSIZE(SrcPath), 2, SourceRootPath->Buffer,
L"\\loader\\fat.bin");
-
- RtlStringCchCopyW(DstPath, ARRAYSIZE(DstPath), L"\\Device\\Floppy0");
+ RtlStringCchCopyW(DstPath, ARRAYSIZE(DstPath), FloppyDevice.Buffer);
DPRINT("Install FAT bootcode: %S ==> %S\n", SrcPath, DstPath);
Status = InstallFat12BootCodeToFloppy(SrcPath, DstPath);
if (!NT_SUCCESS(Status))
{
- DPRINT1("InstallFat16BootCodeToDisk() failed (Status %lx)\n", Status);
+ DPRINT1("InstallFat12BootCodeToFloppy() failed (Status %lx)\n",
Status);
return Status;
}
diff --git a/base/setup/usetup/usetup.rc b/base/setup/usetup/usetup.rc
index d7347f31b9..0d9d304e54 100644
--- a/base/setup/usetup/usetup.rc
+++ b/base/setup/usetup/usetup.rc
@@ -1,4 +1,5 @@
-#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Setup"
-#define REACTOS_STR_INTERNAL_NAME "usetup"
-#define REACTOS_STR_ORIGINAL_FILENAME "usetup.exe"
+
+#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Text-Mode Setup"
+#define REACTOS_STR_INTERNAL_NAME "usetup"
+#define REACTOS_STR_ORIGINAL_FILENAME "usetup.exe"
#include <reactos/version.rc>