Microsoft Hotfix 2588507 addresses an issue that can cause unexpected behavior in 32-bit applications with the /LARGEADDRESSAWARE option enabled when run in a 64-bit version of Windows. The Hotfix addresses the following specific issue:
This issue occurs because of a problem with address-conversion routines. The 32-bit application passes a user-mode memory buffer that is allocated beyond the standard 2-gigabyte (GB) memory address space by using a network-related API such as GetHostByAddress() or GetHostByName(). The address is then converted from a 32-bit address to a 64-bit address in kernel routines. The address-conversion routines incorrectly sign-extend the particular address to convert it into a 64-bit address. This 64-bit address is outside the scope of the user-mode address pool. Therefore, the kernel denies read or write access to the address and returns an error to the application.
Note: Because this issue is specific to memory addresses beyond the standard 2-gigabyte (GB) memory address space, unexpected behavior will occur more frequently if you have top-down addressing enabled. You can check whether this setting is enabled in the Windows Registry. The setting is enabled if the below key and value are set:
Location: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
Key Name: AllocationPreference
Key Value: 0x100000
Related Links:
External Link: Microsoft Hotfix 2588507