@@ -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,11 +783,13 @@ 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 , & LoaderBlock1 ,
787+ & LoaderBlock2 , & SetupBlockPtr , & Extension1 ,
788+ & Extension2 );
777789
778790 /* Allocate and initialize the setup loader block */
779791 SetupBlock = & WinLdrSystemBlock -> SetupBlock ;
780- LoaderBlock -> SetupLdrBlock = SetupBlock ;
792+ * SetupBlockPtr = SetupBlock ;
781793
782794 /* Set textmode setup flag */
783795 SetupBlock -> Flags = SETUPLDR_TEXT_MODE ;
@@ -793,17 +805,17 @@ LoadReactOSSetup(
793805 /* Load NLS data, they are in the System32 directory of the installation medium */
794806 RtlStringCbCopyA (FilePath , sizeof (FilePath ), BootPath );
795807 RtlStringCbCatA (FilePath , sizeof (FilePath ), "system32\\" );
796- SetupLdrLoadNlsData (LoaderBlock , InfHandle , FilePath );
808+ SetupLdrLoadNlsData (LoaderBlock1 , InfHandle , FilePath );
797809
798810 /* Load the Firmware Errata file from the installation medium */
799- Success = SetupLdrInitErrataInf (LoaderBlock , InfHandle , BootPath );
811+ Success = SetupLdrInitErrataInf (Extension2 , InfHandle , BootPath );
800812 TRACE ("Firmware Errata file %s\n" , (Success ? "loaded" : "not loaded" ));
801813 /* Not necessarily fatal if not found - carry on going */
802814
803815 // UiDrawStatusText("Press F6 if you need to install a 3rd-party SCSI or RAID driver...");
804816
805817 /* Get a list of boot drivers */
806- SetupLdrScanBootDrivers (& LoaderBlock -> BootDriverListHead , InfHandle , BootPath );
818+ SetupLdrScanBootDrivers (& LoaderBlock1 -> BootDriverListHead , InfHandle , BootPath );
807819
808820 /* Close the inf file */
809821 InfCloseFile (InfHandle );
@@ -813,6 +825,11 @@ LoadReactOSSetup(
813825 /* Finish loading */
814826 return LoadAndBootWindowsCommon (_WIN32_WINNT_WS03 ,
815827 LoaderBlock ,
828+ LoaderBlock1 ,
829+ LoaderBlock2 ,
830+ SetupBlockPtr ,
831+ Extension1 ,
832+ Extension2 ,
816833 BootOptions ,
817834 BootPath );
818835}
0 commit comments