logoalt Hacker News

Dwedittoday at 2:17 PM1 replyview on HN

In 32-bit windows, you used to be able to see if a pointer was valid or not by seeing if it pointed to the last 2GB of address space. If it did, it was pointing to Kernel memory that was not valid for user mode code.

But then Large Address Aware (4GB limit) changes everything, and you can't do that anymore. In order for a program to be Large Address Aware, you need to not try to do things like check high bits of pointers, then every single library and DLL you use also needs to do the same.


Replies

raw_anon_1111today at 2:19 PM

That sounds like the same ugly hack that caused programs not to be “32 bit clean” back in the day for Macs

show 2 replies