It's possible to trigger the Vista boot screen on Windows 7 onwards (including 8.x / 10 / 11) with this command:
bcdedit /set graphicsmodedisabled yes
But there're side effects:
BSODs don't show up; the screen freezes instead. (triggered by ending one of the svchost.exe processes)
Post-shutdown power-off screen (non-ACPI) triggered with shutdown -s -t 0 after doing the gpedit/regedit trick also doesn't show up (again it freezes).
Does anybody know why it happens? BSODs and the non-ACPI screen show up only if the modern boot screen is enabled. Resources for the old BSOD and non-ACPI screen (XP ~ 7 style) still exist in the kernel file (ntoskrnl.exe / ntkrnlpa.exe), so it should be possible to trigger them somehow (like the Vista boot screen mentioned above, which is also in the kernel file) (looks like modern BSOD and non-ACPI screen are loaded from a different file, but unsure what file)
Side effect of enabling Vista boot screen
-
KTRMAmbiance
- Posts: 75
- Joined: Tue Oct 12, 2021 11:16 am
Re: Side effect of enabling Vista boot screen
The mode you disable allows Windows to display/draw on the screen without any particular video driver (usually generic drivers, but can also be VGA BIOS or GOP in the case of UEFI).
This is quite necessary since in a BSOD, the entire system stops, including drivers, because it is an error that paralyzes the system.
Then the system is only left with the basic graphics mode (pure generic drivers) to display that BSOD.
Disabling the mode makes it so that Windows no longer has a place to display the BSOD without using particular drivers.
The same can be said of the post-shutdown mode, that screen also uses that basic graphical mode to display itself.
At this point you wonder, and how X the system can show the Windows Vista bootscreen? Simple, the bootloader includes generic VGA drivers (older than the OS has).
If Windows cannot use their generic drivers, then it will use the bootloader drivers to continue booting the system.
And in case the question arises, that basic graphics mode requires VGA BIOS (or your graphics card to support generic older VGA modes).
So in some UEFI class 3 computers with safe mode, disabling that mode makes the system unbootable.
Another question here, why specifically that boot screen? You caught me, I don't know that. I can only tell you that, that bootscreen, at least after Windows Vista, is only used in certain special cases (although you don't see it in recent versions of Windows; it's stored there, but not used).
Now, a case that happens to me regarding that bootscreen.
I dualboot Windows 10 and Windows 7 on my computer, UEFI system, Windows 7 was installed last.
When I access Windows 7, it always shows Windows Vista bootscreen. There are no disabled modes or anything. So things like the BSOD or the post-shutdown screen work fine.
I have no specific idea why it happens. It also happens if I boot from an official ISO.
I have another computer that also has UEFI with Windows 7, but that one does show the Windows 7 bootscreen correctly.
This is quite necessary since in a BSOD, the entire system stops, including drivers, because it is an error that paralyzes the system.
Then the system is only left with the basic graphics mode (pure generic drivers) to display that BSOD.
Disabling the mode makes it so that Windows no longer has a place to display the BSOD without using particular drivers.
The same can be said of the post-shutdown mode, that screen also uses that basic graphical mode to display itself.
At this point you wonder, and how X the system can show the Windows Vista bootscreen? Simple, the bootloader includes generic VGA drivers (older than the OS has).
If Windows cannot use their generic drivers, then it will use the bootloader drivers to continue booting the system.
And in case the question arises, that basic graphics mode requires VGA BIOS (or your graphics card to support generic older VGA modes).
So in some UEFI class 3 computers with safe mode, disabling that mode makes the system unbootable.
Another question here, why specifically that boot screen? You caught me, I don't know that. I can only tell you that, that bootscreen, at least after Windows Vista, is only used in certain special cases (although you don't see it in recent versions of Windows; it's stored there, but not used).
Now, a case that happens to me regarding that bootscreen.
I dualboot Windows 10 and Windows 7 on my computer, UEFI system, Windows 7 was installed last.
When I access Windows 7, it always shows Windows Vista bootscreen. There are no disabled modes or anything. So things like the BSOD or the post-shutdown screen work fine.
I have no specific idea why it happens. It also happens if I boot from an official ISO.
I have another computer that also has UEFI with Windows 7, but that one does show the Windows 7 bootscreen correctly.
-
KTRMAmbiance
- Posts: 75
- Joined: Tue Oct 12, 2021 11:16 am
Re: Side effect of enabling Vista boot screen
Ah so unlike Windows 7 and earlier, Windows 8 onwards don't have VGA drivers after the boot screen, hence why it can't display classic BSOD and power off screens, which requires it
Maybe they can appear if it's possible to enable VGA drivers for after boot screen
Maybe they can appear if it's possible to enable VGA drivers for after boot screen
Re: Side effect of enabling Vista boot screen
This is not true.AndreMor wrote: ↑Wed Feb 01, 2023 9:59 amThe mode you disable allows Windows to display/draw on the screen without any particular video driver (usually generic drivers, but can also be VGA BIOS or GOP in the case of UEFI).
This is quite necessary since in a BSOD, the entire system stops, including drivers, because it is an error that paralyzes the system.
Then the system is only left with the basic graphics mode (pure generic drivers) to display that BSOD.
Disabling the mode makes it so that Windows no longer has a place to display the BSOD without using particular drivers.
The same can be said of the post-shutdown mode, that screen also uses that basic graphical mode to display itself.
At this point you wonder, and how X the system can show the Windows Vista bootscreen? Simple, the bootloader includes generic VGA drivers (older than the OS has).
If Windows cannot use their generic drivers, then it will use the bootloader drivers to continue booting the system.
And in case the question arises, that basic graphics mode requires VGA BIOS (or your graphics card to support generic older VGA modes).
So in some UEFI class 3 computers with safe mode, disabling that mode makes the system unbootable.
Another question here, why specifically that boot screen? You caught me, I don't know that. I can only tell you that, that bootscreen, at least after Windows Vista, is only used in certain special cases (although you don't see it in recent versions of Windows; it's stored there, but not used).
Windows 7 and later have two sets of kernel APIs for displaying boot time graphics (also used for the BSOD):
- Bootvid.dll (INBV), which only supports the VGA 640x480 at 16 colors mode. This one was already introduced in Windows 2000.
- BGFX, which uses the VESA BIOS Extensions in order to support higher resolutions with more colors. This one was introduced in Windows 7 in order to overcome the limitations of bootvid.
Windows 7 only uses BGFX for the boot screen but still uses bootvid.dll for the BSOD and "Safe to shutdown" screen. The reason why the BSOD shows up on your system correctly are not any "disabled modes" or whatever, but merely the fact that it is still using the older API.AndreMor wrote: ↑Wed Feb 01, 2023 9:59 amNow, a case that happens to me regarding that bootscreen.
I dualboot Windows 10 and Windows 7 on my computer, UEFI system, Windows 7 was installed last.
When I access Windows 7, it always shows Windows Vista bootscreen. There are no disabled modes or anything. So things like the BSOD or the post-shutdown screen work fine.
I have no specific idea why it happens. It also happens if I boot from an official ISO.
I have another computer that also has UEFI with Windows 7, but that one does show the Windows 7 bootscreen correctly.
No, they are not "drivers" you can enable or disable. They simply reimplemented the BSOD and the "Safe to shutdown" screen using the newer BGFX interface. As I mentioned earlier, there is no fallback for when that's unavailable like there is for the boot screen.KTRMAmbiance wrote: ↑Wed Feb 01, 2023 1:43 pmAh so unlike Windows 7 and earlier, Windows 8 onwards don't have VGA drivers after the boot screen, hence why it can't display classic BSOD and power off screens, which requires it
Maybe they can appear if it's possible to enable VGA drivers for after boot screen
Re: Side effect of enabling Vista boot screen
I think I now have a better understanding of how the boot phase of Windows works, since for everything I've written, there isn't much information on how it all works. It was more deduction than anything else.AlphaBeta wrote: ↑Sat Feb 04, 2023 5:52 pmThis is not true.
Windows 7 and later have two sets of kernel APIs for displaying boot time graphics (also used for the BSOD):Said option only disables BGFX, and as a result, the boot screen falls back to using bootvid.dll. For whatever reason, they decided to keep the XP-era animation code as fallback if the newer animation fails to load. However, there likely is no such fallback implemented for the BSOD and "Safe to shutdown" screens, hence the screen simply freezes.
- Bootvid.dll (INBV), which only supports the VGA 640x480 at 16 colors mode. This one was already introduced in Windows 2000.
- BGFX, which uses the VESA BIOS Extensions in order to support higher resolutions with more colors. This one was introduced in Windows 7 in order to overcome the limitations of bootvid.
Makes sense. Although I'll never know why it always uses the old API in Windows 7. Windows 8.1 and above boot (with the new API) works fine.AlphaBeta wrote: ↑Sat Feb 04, 2023 5:52 pmWindows 7 only uses BGFX for the boot screen but still uses bootvid.dll for the BSOD and "Safe to shutdown" screen. The reason why the BSOD shows up on your system correctly are not any "disabled modes" or whatever, but merely the fact that it is still using the older API.