Hello Windows 2000/XP fans,
while I was working on a graphics driver, I noticed random crashes (blue screens) which were hard to reproduce. They don't happen often, but when using a display mode with 16 colors (for example 640x480x16 colors) they seem to happen more often than with other color depths.
Eventually I was able to narrow down the problem and came to the conclusion, that the root cause is a buffer overrun in the function "CreateXlateObject" in the file "win32k.sys". This buffer overrun sometimes caused a random crash. In the most cases it happened within win32k.sys.
I observed, that this issue is not fixed even in the newest version of win32k.sys from a Windows 2000 update from April 2016. An old version of win32k.sys from Windows XP has the same problem. I don't know which Windows XP update contains the newest version of win32k.sys for Windows XP, so I could not validate whether this issue was ever fixed - and if so: how.
So I thought about what to do and came up with the idea, to write a Windows update of my own to fix this bug.
So far I gathered necessary information and wrote a help file which contains most of what I know about the nature of this issue and how it can be fixed:
OTSKB.chm
There is some more auxilliary information available, which I do not plan to distribute among end users:
code.htm
Eventually, I fixed the win32k.sys from Windows 2000 manually with a hex editor to test the proposed solution:
5.00.2196.0001.zip
The update, which would do this automatically and then install the new file automatically, is not written, yet. However, this test win32k.sys can be manually installed with the instructions in the help file.
I would appreciate some feedback before I continue writing the update. Please let me know what you think. Maybe I just got it all wrong, don't know.