@@ -19,11 +19,16 @@ DBG_DEFAULT_CHANNEL(WINDOWS);
1919VOID
2020AllocateAndInitLPB (
2121 IN USHORT VersionToBoot ,
22- OUT PLOADER_PARAMETER_BLOCK * OutLoaderBlock );
22+ OUT PVOID * OutLoaderBlock ,
23+ OUT PLOADER_PARAMETER_BLOCK1 * OutLoaderBlock1 ,
24+ OUT PLOADER_PARAMETER_BLOCK2 * OutLoaderBlock2 ,
25+ OUT PSETUP_LOADER_BLOCK * * SetupBlockPtr ,
26+ OUT PLOADER_PARAMETER_EXTENSION1 * OutExtension1 ,
27+ OUT PLOADER_PARAMETER_EXTENSION2 * OutExtension2 );
2328
2429static VOID
2530SetupLdrLoadNlsData (
26- _Inout_ PLOADER_PARAMETER_BLOCK LoaderBlock ,
31+ _Inout_ PLOADER_PARAMETER_BLOCK1 LoaderBlock1 ,
2732 _In_ HINF InfHandle ,
2833 _In_ PCSTR SearchPath )
2934{
@@ -76,7 +81,7 @@ SetupLdrLoadNlsData(
7681 & AnsiFileName , & OemFileName , & LangFileName , & OemHalFileName );
7782
7883 /* Load NLS data */
79- Success = WinLdrLoadNLSData (LoaderBlock ,
84+ Success = WinLdrLoadNLSData (LoaderBlock1 ,
8085 SearchPath ,
8186 & AnsiFileName ,
8287 & OemFileName ,
@@ -95,7 +100,7 @@ SetupLdrLoadNlsData(
95100static
96101BOOLEAN
97102SetupLdrInitErrataInf (
98- IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock ,
103+ IN OUT PLOADER_PARAMETER_EXTENSION2 Extension2 ,
99104 IN HINF InfHandle ,
100105 IN PCSTR SystemRoot )
101106{
@@ -128,8 +133,8 @@ SetupLdrInitErrataInf(
128133 return FALSE;
129134 }
130135
131- LoaderBlock -> Extension -> EmInfFileImage = PaToVa (PhysicalBase );
132- LoaderBlock -> Extension -> EmInfFileSize = FileSize ;
136+ Extension2 -> EmInfFileImage = PaToVa (PhysicalBase );
137+ Extension2 -> EmInfFileSize = FileSize ;
133138
134139 return TRUE;
135140}
@@ -488,8 +493,13 @@ LoadReactOSSetup(
488493 HINF InfHandle ;
489494 INFCONTEXT InfContext ;
490495 ULONG i , ErrorLine ;
491- PLOADER_PARAMETER_BLOCK LoaderBlock ;
496+ PVOID LoaderBlock ;
497+ PLOADER_PARAMETER_BLOCK1 LoaderBlock1 ;
498+ PLOADER_PARAMETER_BLOCK2 LoaderBlock2 ;
499+ PSETUP_LOADER_BLOCK * SetupBlockPtr ;
492500 PSETUP_LOADER_BLOCK SetupBlock ;
501+ PLOADER_PARAMETER_EXTENSION1 Extension1 ;
502+ PLOADER_PARAMETER_EXTENSION2 Extension2 ;
493503 CHAR BootPath [MAX_PATH ];
494504 CHAR FilePath [MAX_PATH ];
495505 CHAR UserBootOptions [256 ];
@@ -773,18 +783,19 @@ LoadReactOSSetup(
773783 UiResetForSOS ();
774784
775785 /* Allocate and minimally-initialize the Loader Parameter Block */
776- AllocateAndInitLPB (_WIN32_WINNT_WS03 , & LoaderBlock );
786+ AllocateAndInitLPB (_WIN32_WINNT_WS03 , & LoaderBlock ,
787+ & LoaderBlock1 , & LoaderBlock2 , & SetupBlockPtr , & Extension1 , & Extension2 );
777788
778789 /* Allocate and initialize the setup loader block */
779790 SetupBlock = & WinLdrSystemBlock -> SetupBlock ;
780- LoaderBlock -> SetupLdrBlock = SetupBlock ;
791+ * SetupBlockPtr = SetupBlock ;
781792
782793 /* Set textmode setup flag */
783794 SetupBlock -> Flags = SETUPLDR_TEXT_MODE ;
784795
785796 /* Load the "setupreg.hiv" setup system hive */
786797 UiUpdateProgressBar (15 , "Loading setup system hive..." );
787- Success = WinLdrInitSystemHive (LoaderBlock , BootPath , TRUE);
798+ Success = WinLdrInitSystemHive (LoaderBlock1 , BootPath , TRUE);
788799 TRACE ("Setup SYSTEM hive %s\n" , (Success ? "loaded" : "not loaded" ));
789800 /* Bail out if failure */
790801 if (!Success )
@@ -793,17 +804,17 @@ LoadReactOSSetup(
793804 /* Load NLS data, they are in the System32 directory of the installation medium */
794805 RtlStringCbCopyA (FilePath , sizeof (FilePath ), BootPath );
795806 RtlStringCbCatA (FilePath , sizeof (FilePath ), "system32\\" );
796- SetupLdrLoadNlsData (LoaderBlock , InfHandle , FilePath );
807+ SetupLdrLoadNlsData (LoaderBlock1 , InfHandle , FilePath );
797808
798809 /* Load the Firmware Errata file from the installation medium */
799- Success = SetupLdrInitErrataInf (LoaderBlock , InfHandle , BootPath );
810+ Success = SetupLdrInitErrataInf (Extension2 , InfHandle , BootPath );
800811 TRACE ("Firmware Errata file %s\n" , (Success ? "loaded" : "not loaded" ));
801812 /* Not necessarily fatal if not found - carry on going */
802813
803814 // UiDrawStatusText("Press F6 if you need to install a 3rd-party SCSI or RAID driver...");
804815
805816 /* Get a list of boot drivers */
806- SetupLdrScanBootDrivers (& LoaderBlock -> BootDriverListHead , InfHandle , BootPath );
817+ SetupLdrScanBootDrivers (& LoaderBlock1 -> BootDriverListHead , InfHandle , BootPath );
807818
808819 /* Close the inf file */
809820 InfCloseFile (InfHandle );
@@ -813,6 +824,11 @@ LoadReactOSSetup(
813824 /* Finish loading */
814825 return LoadAndBootWindowsCommon (_WIN32_WINNT_WS03 ,
815826 LoaderBlock ,
827+ LoaderBlock1 ,
828+ LoaderBlock2 ,
829+ SetupBlockPtr ,
830+ Extension1 ,
831+ Extension2 ,
816832 BootOptions ,
817833 BootPath );
818834}
0 commit comments