Windows 7 x86 porting 32-bit UEFI boot

Discuss Windows Vista/Server 2008 to Windows 10.
Post Reply
ZhuMa
Posts: 7
Joined: Mon Jun 22, 2020 7:18 am
Location: China
Contact:

Windows 7 x86 porting 32-bit UEFI boot

Post by ZhuMa »

This is a very interesting study. This feature is ported from the Windows beta.
Although it is officially claimed that only Windows 8 and later versions support x86 UEFI boot, In fact Microsoft introduced 32-bit UEFI boot support as early as the beta version of Windows Vista. Of course, versions earlier than Windows 8 still require CSM support by default when UEFI boot.
The first Windows system build to support UEFI-IA32 boot was 6.0.5219, but this feature was removed by Microsoft after building 6.0.5477.
Image
Until the 32-bit UEFI boot appeared again at build 6.1.7850 and has been retained to this day, the build is also the first Windows system to support exFAT boot.
Image

At present, I have successfully implemented 32-bit UEFI booting of Windows XP and Vista, but I still cannot achieve 32-bit UEFI booting of Windows 7.
I ported the UEFI boot file of Build 5219 to Windows XP Build 5.1.2600.5512 to boot successfully.
Image
Then I ported the UEFI boot file of Build 5477 to Windows Vista Build 6.0.6000.16386 and it was able to boot successfully.
Image
But when I ported the UEFI boot file of Build 7850 to Windows 7 Build 6.1.7600.16385, the boot failed and the BSOD 0x00000100 appeared.
Image
Image
Image
According to the situation in the screenshot, is there a way to solve this problem?
I appologize for my grammatical mistake because English isn't my main language.

Hyoenmadan86
Posts: 228
Joined: Fri Sep 07, 2012 6:45 pm

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by Hyoenmadan86 »

ZhuMa wrote:
Thu Nov 26, 2020 7:21 pm
This is a very interesting study. This feature is ported from the Windows beta.
...
At present, I have successfully implemented 32-bit UEFI booting of Windows XP and Vista, but I still cannot achieve 32-bit UEFI booting of Windows 7.
I ported the UEFI boot file of Build 5219 to Windows XP Build 5.1.2600.5512 to boot successfully.
...
First of all, this doesn't qualify as "porting" or "implementing"... "port" requires at least file disassembling and patching, and "implement" requires coding your own solutions, yes or yes.
You are just transplanting files between windows editions. Call thing by their proper name.

Second, Vista Beta Winload is incompatible with Win7 in both x32 and x64 versions. That's because there was big change in the way the memory is mapped by Winload and then passed to NTOSKRNL during early kernel initialization stages. This is very early in the process, because this crash doesn't even appear in WinDBG (kernel support for it still hasn't bee initialized when it occurs). I really doubt this can be fixed by simple patching, because it involves changes in many parts of Winload booting code.

AlphaBeta
User avatar
Donator
Posts: 2439
Joined: Sun Aug 12, 2012 4:33 pm
Location: Czechia

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by AlphaBeta »

Maybe Windows 8 bootmgr/winload would be a better fit?
AlphaBeta, stop brainwashing me immediately!

Image

Meow
Posts: 480
Joined: Mon Feb 03, 2020 5:28 am
Location: Earth

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by Meow »

AlphaBeta wrote:
Sun Nov 29, 2020 7:26 am
Maybe Windows 8 bootmgr/winload would be a better fit?
It certainly is. I used the 8 bootmgr to boot 7 on UEFI and it worked perfectly.

Octal450
Posts: 11
Joined: Sat Feb 08, 2020 6:03 am

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by Octal450 »

This is very interesting, but I've had problems with UEFI on newer systems with Vista/7. I believe it related to the graphics drivers not being supported in UEFI mode, as if I slipstream the video driver it sometimes fixes it.

J

Marlen Maksumov
Posts: 1
Joined: Wed Dec 23, 2020 7:23 am

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by Marlen Maksumov »

Hi, can you say how you made Windows Vista boot in IA32 UEFI, you could upload the files that are needed to boot properly so others can also try.

2015Windows10
Posts: 3
Joined: Sat Oct 14, 2017 5:38 pm

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by 2015Windows10 »

Marlen Maksumov wrote:
Wed Dec 23, 2020 7:28 am
Hi, can you say how you made Windows Vista boot in IA32 UEFI, you could upload the files that are needed to boot properly so others can also try.
I imagine it would be the exact same files used to boot XP on UEFI with BCD.

wyf180
Posts: 34
Joined: Thu Jan 25, 2018 2:52 am

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by wyf180 »

Maybe you could use depends to find lack api in win7 ntoskrnl.exe to use winload 7850 then add it to ntoskrn8.sys https://github.com/MovAX0xDEAD/NTOSKRNL_Emu at last to fix the winload.efi .

George King
User avatar
Posts: 40
Joined: Sat Jan 02, 2010 10:34 pm
Location: cs-CZ

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by George King »

@wyf180 I don't see any imports in winload.efi in Depency Walker or Depencies

Meow
Posts: 480
Joined: Mon Feb 03, 2020 5:28 am
Location: Earth

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by Meow »

wyf180 wrote:
Tue Jul 26, 2022 3:45 am
Maybe you could use depends to find lack api in win7 ntoskrnl.exe to use winload 7850 then add it to ntoskrn8.sys https://github.com/MovAX0xDEAD/NTOSKRNL_Emu at last to fix the winload.efi .
You don’t even need to do this.

You can just use the Windows 8 efi bootmgr and load 7 that way.
If you’re on a class 3 uefi system (no csm) then you can use something called UefiSeven to get display output.

SONBTV
User avatar
Posts: 60
Joined: Mon Jul 27, 2020 1:41 pm
Location: Ukraine

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by SONBTV »

Meow wrote:
Thu Jul 28, 2022 3:59 pm
wyf180 wrote:
Tue Jul 26, 2022 3:45 am
Maybe you could use depends to find lack api in win7 ntoskrnl.exe to use winload 7850 then add it to ntoskrn8.sys https://github.com/MovAX0xDEAD/NTOSKRNL_Emu at last to fix the winload.efi .
You don’t even need to do this.

You can just use the Windows 8 efi bootmgr and load 7 that way.
If you’re on a class 3 uefi system (no csm) then you can use something called UefiSeven to get display output.
But the weird thing that he is trying to boot Windows 7 x86 with Windows 8 bootmgfw.efi and winload.efi on UEFI with CSM
#russiapleasestopinvasiontoukraine

AlphaBeta
User avatar
Donator
Posts: 2439
Joined: Sun Aug 12, 2012 4:33 pm
Location: Czechia

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by AlphaBeta »

Well then no further action is required, that should just work
AlphaBeta, stop brainwashing me immediately!

Image

JPanag1982
Posts: 1
Joined: Mon May 15, 2023 12:38 pm

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by JPanag1982 »

I tried Windows 7 x86 SP1, with the UEFI files of Windows 8 7850 but it doesn't work. Any advice please? Thank you very much

P.S.: The laptop has no CSM and it has UEFI 32bit

2015Windows10
Posts: 3
Joined: Sat Oct 14, 2017 5:38 pm

Re: Windows 7 x86 porting 32-bit UEFI boot

Post by 2015Windows10 »

ZhuMa wrote:
Thu Nov 26, 2020 7:21 pm
This is a very interesting study. This feature is ported from the Windows beta.
Although it is officially claimed that only Windows 8 and later versions support x86 UEFI boot, In fact Microsoft introduced 32-bit UEFI boot support as early as the beta version of Windows Vista. Of course, versions earlier than Windows 8 still require CSM support by default when UEFI boot.
The first Windows system build to support UEFI-IA32 boot was 6.0.5219, but this feature was removed by Microsoft after building 6.0.5477.
Image
Until the 32-bit UEFI boot appeared again at build 6.1.7850 and has been retained to this day, the build is also the first Windows system to support exFAT boot.
Image

At present, I have successfully implemented 32-bit UEFI booting of Windows XP and Vista, but I still cannot achieve 32-bit UEFI booting of Windows 7.
I ported the UEFI boot file of Build 5219 to Windows XP Build 5.1.2600.5512 to boot successfully.
Image
Then I ported the UEFI boot file of Build 5477 to Windows Vista Build 6.0.6000.16386 and it was able to boot successfully.
Image
But when I ported the UEFI boot file of Build 7850 to Windows 7 Build 6.1.7600.16385, the boot failed and the BSOD 0x00000100 appeared.
Image
Image
Image
According to the situation in the screenshot, is there a way to solve this problem?
How did you get Vista booting on 32-bit UEFI? I installed it in CSM, then added the 5477 UEFI files, but got the 0x00000079 BSOD.

Post Reply