-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows 8 BSOD #1
Comments
It definitely looks like a hard drive issue. During normal boot, VESA is switched off after a while, a cursor renders, and the Gray Screen of Death appears. Setting Interestingly, despite forcing The problem starts around here:
After a few hundred page faults and
Note that this command is never retried, despite the IDE controller aborting the command. All the other reads are done correctly. A few failed disk reads later, it crashes with a BSOD (this time, the screen is blue), further indicating that the So far, I have determined the following:
|
Windows 8 doesn't seem to do any kind of error checking on multi-sector reads. It assumes the read succeeded, even if it returned garbage, transferred zero bytes, or did something else entirely. I created a build of Bochs that disabled multi-sector reads completely and Windows 8 crashed with a similar BSOD, indicating that Why do multi-sector reads work in OS/2 but not on Windows 8? |
Windows 8 doesn't boot. It BSODs (or rather GSODs -- gray screen of death) right after the Windows logo disappears.
It's because of a
Kernel Data Inpage Error
, which, according to this source indicates that Windows 8 couldn't read from the pagefile.I think it's a hardware issue, specifically pertaining to how hard disk information is read/written. It's not a IDE DMA issue -- I created a Windows 8 disk image that uses the
READ
/WRITE MULTIPLE
command, and it still BSODs this way.Multi-sector reads/writes to the disk image haven't been extensively tested. I think there's a subtle bug where cross-block writes don't work properly. The only operating system that uses them is OS/2 (which works fine).
It's possible that the BSOD is due to a cross-block bug. Windows XP had trouble booting in the Emscripten version because single sector reads at the end of the block were corrupting the next one. OS/2 sometimes has trouble booting on my Android phone because of multi-block reads.
More investigation is required.
The text was updated successfully, but these errors were encountered: