Windows XP x64 Nvidia driver fix (PAGE_FAULT_IN_NONPAGED_AREA when two monitors are connected)

tal.aloni

n00b
Joined
Aug 13, 2009
Messages
3
I recently bought a second hand GTX 950 specifically to be used in a dual-boot environment where Windows XP x64 support is still needed. much to my chagrin, whenever two monitors were connected to the card under XP x64 using the latest driver (v368.81), the OS would BSOD with PAGE_FAULT_IN_NONPAGED_AREA in nv4_mini.sys

I have observed that the issue does not exist in the 32-bit version of Windows XP, and decided to kernel-debug both drivers and find the source of the issue.

fortunately, I was able to figure out the issue and come up with a fix.
The source of the issue is a *signed* 32-bit offset having the value of -1 (0xFFFFFFFF) which on the 64-bit driver is treated as an unsigned value, and thus converted to 0x00000000FFFFFFFF (4294967295) instead of 0xFFFFFFFFFFFFFFFF (-1).

Here is a link to a fixed nv4_mini.sys based on v368.81 which does the conversion correctly (yay, no more BSODs!):
http://vm1.duckdns.org/Public/Nvidia/368.81-PAGE_FAULT_IN_NONPAGED_AREA-fix/nv4_mini.sys

p.s. I have set the patched driver version to v368.82

hopefully somebody else will find this useful!
 
Last edited:
Hello:
First of all, thanks for the file. It works OK. But I need the nv4_mini for the 355.82 driver version (XP 64 bit) with this modification because my laptop display is detected as TV display and I cannot create custom resolutions. This is due a nvidia bug.
Can you create the mod for 355.82 driver? or can you tell me how you modded it to do it for my own?
Thanks.
 
I recently bought a second hand GTX 950 specifically to be used in a dual-boot environment where Windows XP x64 support is still needed. much to my chagrin, whenever two monitors were connected to the card under XP x64 using the latest driver (v368.81), the OS would BSOD with PAGE_FAULT_IN_NONPAGED_AREA in nv4_mini.sys

I have observed that the issue does not exist in the 32-bit version of Windows XP, and decided to kernel-debug both drivers and find the source of the issue.

fortunately, I was able to figure out the issue and come up with a fix.
The source of the issue is a *signed* 32-bit offset having the value of -1 (0xFFFFFFFF) which on the 64-bit driver is treated as an unsigned value, and thus converted to 0x00000000FFFFFFFF (4294967295) instead of 0xFFFFFFFFFFFFFFFF (-1).

Here is a link to a fixed nv4_mini.sys based on v368.81 which does the conversion correctly (yay, no more BSODs!):
http://vm1.duckdns.org/Public/Nvidia/368.81-PAGE_FAULT_IN_NONPAGED_AREA-fix/nv4_mini.sys

p.s. I have set the patched driver version to v368.82

hopefully somebody else will find this useful!
Hello,
Can you tell me how to use your nv4_mini.sys file? I tried copying it over the extracted 368.81 files but I still get BSOD when connecting second monitor usning the display port (display port-to-DVI adapter). Trying to mod the "Titan X" driver for Windows XP 64 graphics workstation. Thanks!
 
Hello,
Can you tell me how to use your nv4_mini.sys file? I tried copying it over the extracted 368.81 files but I still get BSOD when connecting second monitor usning the display port (display port-to-DVI adapter). Trying to mod the "Titan X" driver for Windows XP 64 graphics workstation. Thanks!
Nice necro.

The OP hasn't been back here since 2018.
 
Back
Top