From: Hermès Bélusca-Maïto Date: Sat, 10 Aug 2019 17:13:20 +0000 (+0200) Subject: [FREELDR] Some changes that accumulated since years in my local copy. Also initialize... X-Git-Tag: 0.4.14-dev~401 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=31a3f3177cc0f064caf3d80abafbdd4738845179 [FREELDR] Some changes that accumulated since years in my local copy. Also initialize SetupBlock->ArcSetupDeviceName to some valid value. --- diff --git a/boot/freeldr/freeldr/arch/amd64/int386.S b/boot/freeldr/freeldr/arch/amd64/int386.S index feb5423a3ed..dc486ee7b18 100644 --- a/boot/freeldr/freeldr/arch/amd64/int386.S +++ b/boot/freeldr/freeldr/arch/amd64/int386.S @@ -80,5 +80,4 @@ int386_2: pop rbx ret - END diff --git a/boot/freeldr/freeldr/arch/i386/archmach.c b/boot/freeldr/freeldr/arch/i386/archmach.c index 46915ab40c0..293f9481529 100644 --- a/boot/freeldr/freeldr/arch/i386/archmach.c +++ b/boot/freeldr/freeldr/arch/i386/archmach.c @@ -21,24 +21,24 @@ VOID MachInit(const char *CmdLine) { - ULONG PciId; + ULONG PciId; - memset(&MachVtbl, 0, sizeof(MACHVTBL)); + memset(&MachVtbl, 0, sizeof(MACHVTBL)); - /* Check for Xbox by identifying device at PCI 0:0:0, if it's - * 0x10de/0x02a5 then we're running on an Xbox */ - WRITE_PORT_ULONG((ULONG*) 0xcf8, CONFIG_CMD(0, 0, 0)); - PciId = READ_PORT_ULONG((ULONG*) 0xcfc); - if (0x02a510de == PciId) + /* Check for Xbox by identifying device at PCI 0:0:0, if it's + * 0x10de/0x02a5 then we're running on an Xbox */ + WRITE_PORT_ULONG((ULONG*)0xcf8, CONFIG_CMD(0, 0, 0)); + PciId = READ_PORT_ULONG((ULONG*)0xcfc); + if (PciId == 0x02a510de) { - XboxMachInit(CmdLine); + XboxMachInit(CmdLine); } - else + else { - PcMachInit(CmdLine); + PcMachInit(CmdLine); } - HalpCalibrateStallExecution(); + HalpCalibrateStallExecution(); } /* EOF */ diff --git a/boot/freeldr/freeldr/arch/i386/hwapm.c b/boot/freeldr/freeldr/arch/i386/hwapm.c index c5a822802c1..f933224bea9 100644 --- a/boot/freeldr/freeldr/arch/i386/hwapm.c +++ b/boot/freeldr/freeldr/arch/i386/hwapm.c @@ -27,30 +27,30 @@ DBG_DEFAULT_CHANNEL(HWDETECT); static BOOLEAN FindApmBios(VOID) { - REGS RegsIn; - REGS RegsOut; + REGS RegsIn; + REGS RegsOut; - RegsIn.b.ah = 0x53; - RegsIn.b.al = 0x00; - RegsIn.w.bx = 0x0000; + RegsIn.b.ah = 0x53; + RegsIn.b.al = 0x00; + RegsIn.w.bx = 0x0000; - Int386(0x15, &RegsIn, &RegsOut); + Int386(0x15, &RegsIn, &RegsOut); - if (INT386_SUCCESS(RegsOut)) + if (INT386_SUCCESS(RegsOut)) { - TRACE("Found APM BIOS\n"); - TRACE("AH: %x\n", RegsOut.b.ah); - TRACE("AL: %x\n", RegsOut.b.al); - TRACE("BH: %x\n", RegsOut.b.bh); - TRACE("BL: %x\n", RegsOut.b.bl); - TRACE("CX: %x\n", RegsOut.w.cx); - - return TRUE; + TRACE("Found APM BIOS\n"); + TRACE("AH: %x\n", RegsOut.b.ah); + TRACE("AL: %x\n", RegsOut.b.al); + TRACE("BH: %x\n", RegsOut.b.bh); + TRACE("BL: %x\n", RegsOut.b.bl); + TRACE("CX: %x\n", RegsOut.w.cx); + + return TRUE; } - TRACE("No APM BIOS found\n"); + TRACE("No APM BIOS found\n"); - return FALSE; + return FALSE; } diff --git a/boot/freeldr/freeldr/arch/i386/hwpci.c b/boot/freeldr/freeldr/arch/i386/hwpci.c index c5bb0061b37..8e6062da061 100644 --- a/boot/freeldr/freeldr/arch/i386/hwpci.c +++ b/boot/freeldr/freeldr/arch/i386/hwpci.c @@ -87,7 +87,7 @@ FindPciBios(PPCI_REGISTRY_INFO BusData) Int386(0x1A, &RegsIn, &RegsOut); if (INT386_SUCCESS(RegsOut) && - (RegsOut.d.edx == 0x20494350) && + (RegsOut.d.edx == ' ICP') && (RegsOut.b.ah == 0)) { TRACE("Found PCI bios\n"); diff --git a/boot/freeldr/freeldr/arch/powerpc/mach.c b/boot/freeldr/freeldr/arch/powerpc/mach.c index c00604ee923..01aed8c8fca 100644 --- a/boot/freeldr/freeldr/arch/powerpc/mach.c +++ b/boot/freeldr/freeldr/arch/powerpc/mach.c @@ -23,7 +23,7 @@ #include "prep.h" #include "compat.h" -extern void BootMain( LPSTR CmdLine ); +extern void BootMain( PSTR CmdLine ); extern const PCSTR GetFreeLoaderVersionString(VOID); extern ULONG CacheSizeLimit; of_proxy ofproxy; diff --git a/boot/freeldr/freeldr/arch/powerpc/mboot.c b/boot/freeldr/freeldr/arch/powerpc/mboot.c index aa57f0693cd..28d8d594142 100644 --- a/boot/freeldr/freeldr/arch/powerpc/mboot.c +++ b/boot/freeldr/freeldr/arch/powerpc/mboot.c @@ -432,10 +432,10 @@ FrLdrMapModule(FILE *KernelImage, PCHAR ImageName, PCHAR MemLoadAddr, ULONG Kern Elf32_Ehdr ehdr; Elf32_Shdr *shdr; LARGE_INTEGER Position; - LPSTR TempName; + PSTR TempName; TempName = strrchr(ImageName, '\\'); - if(TempName) TempName++; else TempName = (LPSTR)ImageName; + if(TempName) TempName++; else TempName = (PSTR)ImageName; ModuleData = LdrGetModuleObject(TempName); if(ModuleData) @@ -708,7 +708,7 @@ FrLdrMapKernel(FILE *KernelImage) ULONG_PTR NTAPI FrLdrLoadModule(FILE *ModuleImage, - LPCSTR ModuleName, + PCSTR ModuleName, PULONG ModuleSize) { ARC_STATUS Status; @@ -716,8 +716,8 @@ FrLdrLoadModule(FILE *ModuleImage, ULONG LocalModuleSize; ULONG_PTR ThisModuleBase = NextModuleBase; PLOADER_MODULE ModuleData; - LPSTR NameBuffer; - LPSTR TempName; + PSTR NameBuffer; + PSTR TempName; /* Get current module data structure and module name string array */ ModuleData = &reactos_modules[LoaderBlock.ModsCount]; @@ -795,10 +795,10 @@ FrLdrMapImage(IN FILE *Image, IN PCHAR ShortName, IN ULONG ImageType) ULONG_PTR NTAPI -FrLdrCreateModule(LPCSTR ModuleName) +FrLdrCreateModule(PCSTR ModuleName) { PLOADER_MODULE ModuleData; - LPSTR NameBuffer; + PSTR NameBuffer; /* Get current module data structure and module name string array */ ModuleData = &reactos_modules[LoaderBlock.ModsCount]; diff --git a/boot/freeldr/freeldr/arch/realmode/int386.inc b/boot/freeldr/freeldr/arch/realmode/int386.inc index 42c49337de8..f8ab7039c96 100644 --- a/boot/freeldr/freeldr/arch/realmode/int386.inc +++ b/boot/freeldr/freeldr/arch/realmode/int386.inc @@ -83,6 +83,3 @@ Int386_vector_opcode: pop ds ret - - - diff --git a/boot/freeldr/freeldr/cache/cache.c b/boot/freeldr/freeldr/cache/cache.c index dee293a85c4..a56068d05c6 100644 --- a/boot/freeldr/freeldr/cache/cache.c +++ b/boot/freeldr/freeldr/cache/cache.c @@ -91,12 +91,9 @@ BOOLEAN CacheInitializeDrive(UCHAR DriveNumber) CacheManagerDrive.BlockSize = MachDiskGetCacheableBlockCount(DriveNumber); CacheBlockCount = 0; - CacheSizeLimit = TotalPagesInLookupTable / 8 * MM_PAGE_SIZE; CacheSizeCurrent = 0; - if (CacheSizeLimit > TEMP_HEAP_SIZE - (128 * 1024)) - { - CacheSizeLimit = TEMP_HEAP_SIZE - (128 * 1024); - } + CacheSizeLimit = TotalPagesInLookupTable / 8 * MM_PAGE_SIZE; + CacheSizeLimit = min(CacheSizeLimit, TEMP_HEAP_SIZE - (128 * 1024)); CacheManagerInitialized = TRUE; diff --git a/boot/freeldr/freeldr/ntldr/arch/arm/winldr.c b/boot/freeldr/freeldr/ntldr/arch/arm/winldr.c index 820eb3b4800..5ca93f02bd5 100644 --- a/boot/freeldr/freeldr/ntldr/arch/arm/winldr.c +++ b/boot/freeldr/freeldr/ntldr/arch/arm/winldr.c @@ -165,8 +165,8 @@ WinLdrMapSpecialPages(ULONG PcrBasePage) VOID WinLdrSetupForNt(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN PVOID *GdtIdt, - IN ULONG *PcrBasePage, - IN ULONG *TssBasePage) + IN PULONG PcrBasePage, + IN PULONG TssBasePage) { PKPDR_PAGE PdrPage = (PVOID)0xFFD00000; diff --git a/boot/freeldr/freeldr/ntldr/arch/i386/winldr.c b/boot/freeldr/freeldr/ntldr/arch/i386/winldr.c index abb86f9617e..5e289d19dd7 100644 --- a/boot/freeldr/freeldr/ntldr/arch/i386/winldr.c +++ b/boot/freeldr/freeldr/ntldr/arch/i386/winldr.c @@ -632,7 +632,7 @@ WinLdrSetProcessorContext(void) VOID MempDump(VOID) { - ULONG *PDE_Addr=(ULONG *)PDE;//0xC0300000; + PULONG PDE_Addr=(PULONG)PDE;//0xC0300000; int i, j; TRACE("\nPDE\n"); diff --git a/boot/freeldr/freeldr/ntldr/registry.c b/boot/freeldr/freeldr/ntldr/registry.c index 6b826bc23c9..70a2f2eaa0e 100644 --- a/boot/freeldr/freeldr/ntldr/registry.c +++ b/boot/freeldr/freeldr/ntldr/registry.c @@ -225,7 +225,7 @@ RegEnumKey( _In_ HKEY Key, _In_ ULONG Index, _Out_ PWCHAR Name, - _Inout_ ULONG* NameSize, + _Inout_ PULONG NameSize, _Out_opt_ PHKEY SubKey) { PHHIVE Hive = &CmHive->Hive; @@ -398,9 +398,9 @@ VOID RepGetValueData( _In_ PHHIVE Hive, _In_ PCM_KEY_VALUE ValueCell, - _Out_opt_ ULONG* Type, + _Out_opt_ PULONG Type, _Out_opt_ PUCHAR Data, - _Inout_opt_ ULONG* DataSize) + _Inout_opt_ PULONG DataSize) { ULONG DataLength; PVOID DataCell; @@ -435,9 +435,9 @@ LONG RegQueryValue( _In_ HKEY Key, _In_z_ PCWSTR ValueName, - _Out_opt_ ULONG* Type, + _Out_opt_ PULONG Type, _Out_opt_ PUCHAR Data, - _Inout_opt_ ULONG* DataSize) + _Inout_opt_ PULONG DataSize) { PHHIVE Hive = &CmHive->Hive; PCM_KEY_NODE KeyNode; @@ -485,10 +485,10 @@ RegEnumValue( _In_ HKEY Key, _In_ ULONG Index, _Out_ PWCHAR ValueName, - _Inout_ ULONG* NameSize, - _Out_opt_ ULONG* Type, + _Inout_ PULONG NameSize, + _Out_opt_ PULONG Type, _Out_opt_ PUCHAR Data, - _Inout_opt_ ULONG* DataSize) + _Inout_opt_ PULONG DataSize) { PHHIVE Hive = &CmHive->Hive; PCM_KEY_NODE KeyNode; diff --git a/boot/freeldr/freeldr/ntldr/registry.h b/boot/freeldr/freeldr/ntldr/registry.h index d5f5839a9a1..b59cce682f4 100644 --- a/boot/freeldr/freeldr/ntldr/registry.h +++ b/boot/freeldr/freeldr/ntldr/registry.h @@ -23,41 +23,48 @@ typedef HANDLE HKEY, *PHKEY; +BOOLEAN +RegImportBinaryHive( + _In_ PVOID ChunkBase, + _In_ ULONG ChunkSize); + LONG -RegInitCurrentControlSet(BOOLEAN LastKnownGood); +RegInitCurrentControlSet( + _In_ BOOLEAN LastKnownGood); LONG RegEnumKey( _In_ HKEY Key, _In_ ULONG Index, _Out_ PWCHAR Name, - _Inout_ ULONG* NameSize, + _Inout_ PULONG NameSize, _Out_opt_ PHKEY SubKey); LONG -RegOpenKey(HKEY ParentKey, - PCWSTR KeyName, - PHKEY Key); +RegOpenKey( + _In_ HKEY ParentKey, + _In_z_ PCWSTR KeyName, + _Out_ PHKEY Key); LONG -RegQueryValue(HKEY Key, - PCWSTR ValueName, - ULONG* Type, - PUCHAR Data, - ULONG* DataSize); +RegQueryValue( + _In_ HKEY Key, + _In_z_ PCWSTR ValueName, + _Out_opt_ PULONG Type, + _Out_opt_ PUCHAR Data, + _Inout_opt_ PULONG DataSize); +#if 0 LONG -RegEnumValue(HKEY Key, - ULONG Index, - PWCHAR ValueName, - ULONG* NameSize, - ULONG* Type, - PUCHAR Data, - ULONG* DataSize); - -BOOLEAN -RegImportBinaryHive(PVOID ChunkBase, - ULONG ChunkSize); +RegEnumValue( + _In_ HKEY Key, + _In_ ULONG Index, + _Out_ PWCHAR ValueName, + _Inout_ PULONG NameSize, + _Out_opt_ PULONG Type, + _Out_opt_ PUCHAR Data, + _Inout_opt_ PULONG DataSize) +#endif #endif /* __REGISTRY_H */ diff --git a/boot/freeldr/freeldr/ntldr/setupldr.c b/boot/freeldr/freeldr/ntldr/setupldr.c index 5342a1b0c55..95c70acb347 100644 --- a/boot/freeldr/freeldr/ntldr/setupldr.c +++ b/boot/freeldr/freeldr/ntldr/setupldr.c @@ -33,10 +33,10 @@ DBG_DEFAULT_CHANNEL(WINDOWS); VOID AllocateAndInitLPB(PLOADER_PARAMETER_BLOCK *OutLoaderBlock); static VOID -SetupLdrLoadNlsData(PLOADER_PARAMETER_BLOCK LoaderBlock, HINF InfHandle, LPCSTR SearchPath) +SetupLdrLoadNlsData(PLOADER_PARAMETER_BLOCK LoaderBlock, HINF InfHandle, PCSTR SearchPath) { INFCONTEXT InfContext; - LPCSTR AnsiName, OemName, LangName; + PCSTR AnsiName, OemName, LangName; /* Get ANSI codepage file */ if (!InfFindFirstLine(InfHandle, "NLS", "AnsiCodepage", &InfContext)) @@ -79,7 +79,7 @@ SetupLdrLoadNlsData(PLOADER_PARAMETER_BLOCK LoaderBlock, HINF InfHandle, LPCSTR { BOOLEAN Success = WinLdrLoadNLSData(LoaderBlock, SearchPath, AnsiName, OemName, LangName); TRACE("NLS data loading %s\n", Success ? "successful" : "failed"); - } + } #else WinLdrLoadNLSData(LoaderBlock, SearchPath, AnsiName, OemName, LangName); #endif @@ -89,11 +89,11 @@ SetupLdrLoadNlsData(PLOADER_PARAMETER_BLOCK LoaderBlock, HINF InfHandle, LPCSTR } static VOID -SetupLdrScanBootDrivers(PLIST_ENTRY BootDriverListHead, HINF InfHandle, LPCSTR SearchPath) +SetupLdrScanBootDrivers(PLIST_ENTRY BootDriverListHead, HINF InfHandle, PCSTR SearchPath) { INFCONTEXT InfContext, dirContext; BOOLEAN Success; - LPCSTR Media, DriverName, dirIndex, ImagePath; + PCSTR Media, DriverName, dirIndex, ImagePath; WCHAR ServiceName[256]; WCHAR ImagePathW[256]; @@ -152,8 +152,8 @@ LoadReactOSSetup( CHAR FileName[512]; CHAR BootPath[512]; CHAR BootOptions2[256]; - LPCSTR LoadOptions; - LPSTR BootOptions; + PCSTR LoadOptions; + PSTR BootOptions; BOOLEAN BootFromFloppy; BOOLEAN Success; ULONG i, ErrorLine; @@ -161,9 +161,9 @@ LoadReactOSSetup( INFCONTEXT InfContext; PLOADER_PARAMETER_BLOCK LoaderBlock; PSETUP_LOADER_BLOCK SetupBlock; - LPCSTR SystemPath; + PCSTR SystemPath; - static LPCSTR SourcePaths[] = + static PCSTR SourcePaths[] = { "", /* Only for floppy boot */ #if defined(_M_IX86) @@ -297,7 +297,7 @@ LoadReactOSSetup( /* Get debug load options and use them */ if (InfFindFirstLine(InfHandle, "SetupData", "DbgOsLoadOptions", &InfContext)) { - LPCSTR DbgLoadOptions; + PCSTR DbgLoadOptions; if (InfGetDataField(&InfContext, 1, &DbgLoadOptions)) LoadOptions = DbgLoadOptions; diff --git a/boot/freeldr/freeldr/ntldr/winldr.c b/boot/freeldr/freeldr/ntldr/winldr.c index 47649d5c028..e68a6027e86 100644 --- a/boot/freeldr/freeldr/ntldr/winldr.c +++ b/boot/freeldr/freeldr/ntldr/winldr.c @@ -75,9 +75,9 @@ AllocateAndInitLPB(PLOADER_PARAMETER_BLOCK *OutLoaderBlock) // Init "phase 1" VOID WinLdrInitializePhase1(PLOADER_PARAMETER_BLOCK LoaderBlock, - LPCSTR Options, - LPCSTR SystemRoot, - LPCSTR BootPath, + PCSTR Options, + PCSTR SystemRoot, + PCSTR BootPath, USHORT VersionToBoot) { /* Examples of correct options and paths */ @@ -86,7 +86,7 @@ WinLdrInitializePhase1(PLOADER_PARAMETER_BLOCK LoaderBlock, //CHAR SystemRoot[] = "\\WINNT\\"; //CHAR ArcBoot[] = "multi(0)disk(0)rdisk(0)partition(1)"; - LPSTR LoadOptions, NewLoadOptions; + PSTR LoadOptions, NewLoadOptions; CHAR HalPath[] = "\\"; CHAR ArcBoot[MAX_PATH+1]; CHAR MiscFiles[MAX_PATH+1]; @@ -107,6 +107,23 @@ WinLdrInitializePhase1(PLOADER_PARAMETER_BLOCK LoaderBlock, RtlStringCbCopyA(LoaderBlock->ArcBootDeviceName, sizeof(WinLdrSystemBlock->ArcBootDeviceName), ArcBoot); LoaderBlock->ArcBootDeviceName = PaToVa(LoaderBlock->ArcBootDeviceName); +// +// IMPROVE!! +// SetupBlock->ArcSetupDeviceName must be the path to the setup **SOURCE**, +// and not the setup boot path. Indeed they may differ!! +// + /* If we have a setup block, adjust also its ARC path */ + if (LoaderBlock->SetupLdrBlock) + { + PSETUP_LOADER_BLOCK SetupBlock = LoaderBlock->SetupLdrBlock; + + /* Matches ArcBoot path */ + SetupBlock->ArcSetupDeviceName = WinLdrSystemBlock->ArcBootDeviceName; + SetupBlock->ArcSetupDeviceName = PaToVa(SetupBlock->ArcSetupDeviceName); + + /* Note: LoaderBlock->SetupLdrBlock is PaToVa'ed at the end of this function */ + } + /* Fill ARC HalDevice, it matches ArcBoot path */ LoaderBlock->ArcHalDeviceName = WinLdrSystemBlock->ArcBootDeviceName; LoaderBlock->ArcHalDeviceName = PaToVa(LoaderBlock->ArcHalDeviceName); @@ -221,7 +238,7 @@ WinLdrInitializePhase1(PLOADER_PARAMETER_BLOCK LoaderBlock, static BOOLEAN WinLdrLoadDeviceDriver(PLIST_ENTRY LoadOrderListHead, - LPCSTR BootPath, + PCSTR BootPath, PUNICODE_STRING FilePath, ULONG Flags, PLDR_DATA_TABLE_ENTRY *DriverDTE) @@ -292,7 +309,7 @@ WinLdrLoadDeviceDriver(PLIST_ENTRY LoadOrderListHead, BOOLEAN WinLdrLoadBootDrivers(PLOADER_PARAMETER_BLOCK LoaderBlock, - LPCSTR BootPath) + PCSTR BootPath) { PLIST_ENTRY NextBd; PBOOT_DRIVER_LIST_ENTRY BootDriver; @@ -344,7 +361,7 @@ WinLdrLoadBootDrivers(PLOADER_PARAMETER_BLOCK LoaderBlock, PVOID WinLdrLoadModule(PCSTR ModuleName, - ULONG *Size, + PULONG Size, TYPE_OF_MEMORY MemoryType) { ULONG FileId; @@ -782,15 +799,15 @@ ARC_STATUS LoadAndBootWindowsCommon( USHORT OperatingSystemVersion, PLOADER_PARAMETER_BLOCK LoaderBlock, - LPCSTR BootOptions, - LPCSTR BootPath, + PCSTR BootOptions, + PCSTR BootPath, BOOLEAN Setup) { PLOADER_PARAMETER_BLOCK LoaderBlockVA; BOOLEAN Success; PLDR_DATA_TABLE_ENTRY KernelDTE; KERNEL_ENTRY_POINT KiSystemStartup; - LPCSTR SystemRoot; + PCSTR SystemRoot; TRACE("LoadAndBootWindowsCommon()\n"); diff --git a/boot/freeldr/freeldr/ntldr/winldr.h b/boot/freeldr/freeldr/ntldr/winldr.h index b5e43d06e18..ede9b6423c7 100644 --- a/boot/freeldr/freeldr/ntldr/winldr.h +++ b/boot/freeldr/freeldr/ntldr/winldr.h @@ -97,7 +97,7 @@ VOID ConvertConfigToVA(PCONFIGURATION_COMPONENT_DATA Start); // winldr.c -PVOID WinLdrLoadModule(PCSTR ModuleName, ULONG *Size, +PVOID WinLdrLoadModule(PCSTR ModuleName, PULONG Size, TYPE_OF_MEMORY MemoryType); // wlmemory.c @@ -112,21 +112,21 @@ WinLdrInitSystemHive( IN BOOLEAN Setup); BOOLEAN WinLdrScanSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, - IN LPCSTR DirectoryPath); + IN PCSTR DirectoryPath); // winldr.c VOID WinLdrInitializePhase1(PLOADER_PARAMETER_BLOCK LoaderBlock, - LPCSTR Options, - LPCSTR SystemPath, - LPCSTR BootPath, + PCSTR Options, + PCSTR SystemPath, + PCSTR BootPath, USHORT VersionToBoot); BOOLEAN WinLdrLoadNLSData(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, - IN LPCSTR DirectoryPath, - IN LPCSTR AnsiFileName, - IN LPCSTR OemFileName, - IN LPCSTR LanguageFileName); + IN PCSTR DirectoryPath, + IN PCSTR AnsiFileName, + IN PCSTR OemFileName, + IN PCSTR LanguageFileName); BOOLEAN WinLdrAddDriverToList(LIST_ENTRY *BootDriverListHead, LPWSTR RegistryPath, @@ -146,6 +146,6 @@ ARC_STATUS LoadAndBootWindowsCommon( USHORT OperatingSystemVersion, PLOADER_PARAMETER_BLOCK LoaderBlock, - LPCSTR BootOptions, - LPCSTR BootPath, + PCSTR BootOptions, + PCSTR BootPath, BOOLEAN Setup); diff --git a/boot/freeldr/freeldr/ntldr/wlregistry.c b/boot/freeldr/freeldr/ntldr/wlregistry.c index 8c78e60608c..e5c36352d4c 100644 --- a/boot/freeldr/freeldr/ntldr/wlregistry.c +++ b/boot/freeldr/freeldr/ntldr/wlregistry.c @@ -19,13 +19,13 @@ DBG_DEFAULT_CHANNEL(WINDOWS); ULONG TotalNLSSize = 0; static BOOLEAN -WinLdrGetNLSNames(LPSTR AnsiName, - LPSTR OemName, - LPSTR LangName); +WinLdrGetNLSNames(PSTR AnsiName, + PSTR OemName, + PSTR LangName); static VOID WinLdrScanRegistry(IN OUT PLIST_ENTRY BootDriverListHead, - IN LPCSTR DirectoryPath); + IN PCSTR SystemRoot); /* FUNCTIONS **************************************************************/ @@ -171,14 +171,14 @@ WinLdrInitSystemHive( } BOOLEAN WinLdrScanSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, - IN LPCSTR DirectoryPath) + IN PCSTR SystemRoot) { CHAR SearchPath[1024]; CHAR AnsiName[256], OemName[256], LangName[256]; BOOLEAN Success; /* Scan registry and prepare boot drivers list */ - WinLdrScanRegistry(&LoaderBlock->BootDriverListHead, DirectoryPath); + WinLdrScanRegistry(&LoaderBlock->BootDriverListHead, SystemRoot); /* Get names of NLS files */ Success = WinLdrGetNLSNames(AnsiName, OemName, LangName); @@ -191,7 +191,7 @@ BOOLEAN WinLdrScanSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, TRACE("NLS data %s %s %s\n", AnsiName, OemName, LangName); /* Load NLS data */ - strcpy(SearchPath, DirectoryPath); + strcpy(SearchPath, SystemRoot); strcat(SearchPath, "system32\\"); Success = WinLdrLoadNLSData(LoaderBlock, SearchPath, AnsiName, OemName, LangName); TRACE("NLS data loading %s\n", Success ? "successful" : "failed"); @@ -208,9 +208,9 @@ BOOLEAN WinLdrScanSystemHive(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, // Queries registry for those three file names static BOOLEAN -WinLdrGetNLSNames(LPSTR AnsiName, - LPSTR OemName, - LPSTR LangName) +WinLdrGetNLSNames(PSTR AnsiName, + PSTR OemName, + PSTR LangName) { LONG rc = ERROR_SUCCESS; HKEY hKey; @@ -218,7 +218,7 @@ WinLdrGetNLSNames(LPSTR AnsiName, WCHAR NameBuffer[80]; ULONG BufferSize; - /* open the codepage key */ + /* Open the CodePage key */ rc = RegOpenKey(NULL, L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\NLS\\CodePage", &hKey); @@ -266,7 +266,7 @@ WinLdrGetNLSNames(LPSTR AnsiName, } sprintf(OemName, "%S", NameBuffer); - /* Open the language key */ + /* Open the Language key */ rc = RegOpenKey(NULL, L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\NLS\\Language", &hKey); @@ -299,10 +299,10 @@ WinLdrGetNLSNames(LPSTR AnsiName, BOOLEAN WinLdrLoadNLSData(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, - IN LPCSTR DirectoryPath, - IN LPCSTR AnsiFileName, - IN LPCSTR OemFileName, - IN LPCSTR LanguageFileName) + IN PCSTR DirectoryPath, + IN PCSTR AnsiFileName, + IN PCSTR OemFileName, + IN PCSTR LanguageFileName) { CHAR FileName[255]; ULONG AnsiFileId; @@ -486,7 +486,7 @@ Failure: static VOID WinLdrScanRegistry(IN OUT PLIST_ENTRY BootDriverListHead, - IN LPCSTR DirectoryPath) + IN PCSTR SystemRoot) { LONG rc = 0; HKEY hGroupKey, hOrderKey, hServiceKey, hDriverKey; @@ -614,11 +614,11 @@ WinLdrScanRegistry(IN OUT PLIST_ENTRY BootDriverListHead, { TRACE_CH(REACTOS, "ImagePath: not found\n"); TempImagePath[0] = 0; - RtlStringCbPrintfA(ImagePath, sizeof(ImagePath), "%s\\system32\\drivers\\%S.sys", DirectoryPath, ServiceName); + RtlStringCbPrintfA(ImagePath, sizeof(ImagePath), "%s\\system32\\drivers\\%S.sys", SystemRoot, ServiceName); } else if (TempImagePath[0] != L'\\') { - RtlStringCbPrintfA(ImagePath, sizeof(ImagePath), "%s%S", DirectoryPath, TempImagePath); + RtlStringCbPrintfA(ImagePath, sizeof(ImagePath), "%s%S", SystemRoot, TempImagePath); } else { @@ -694,11 +694,11 @@ WinLdrScanRegistry(IN OUT PLIST_ENTRY BootDriverListHead, { TRACE_CH(REACTOS, "ImagePath: not found\n"); TempImagePath[0] = 0; - RtlStringCbPrintfA(ImagePath, sizeof(ImagePath), "%ssystem32\\drivers\\%S.sys", DirectoryPath, ServiceName); + RtlStringCbPrintfA(ImagePath, sizeof(ImagePath), "%ssystem32\\drivers\\%S.sys", SystemRoot, ServiceName); } else if (TempImagePath[0] != L'\\') { - RtlStringCbPrintfA(ImagePath, sizeof(ImagePath), "%s%S", DirectoryPath, TempImagePath); + RtlStringCbPrintfA(ImagePath, sizeof(ImagePath), "%s%S", SystemRoot, TempImagePath); } else {