Microsoft outlines Win64 futures

But they'd better sort out beta three first

As reported here last week, Microsoft is to send out 100,000 copies of W2K Beta Three on 21 April. (Story: Microsoft to ship beta three on 21 April). But even before it has started shipping that beta, the Great Satan of Software has started talking about Win64. At the Intel Developer Forum, Oscar Newkerk, who runs the developer relations group at Microsoft, outlined the company's plans for Win64. He told delegates that Win64 is not NT 5 style VLM, and has uniform address space, with all pointers 64 bits, and all APIs that accept pointers will accept 64-bit pointers. The intention, he said, was to provide ISVs with a uniform 4Tb user, 4Tb kernel, flat address space and to deliver Win64 on all 64-bit capable processors that support Windows NT. Err...those are the Alpha and Intel platforms, aren't they? He claimed that porting from Win32 to Win64 "should be simple", and Microsoft has the goal to support both with a single source code base. There will be no new programming models. Win64, he said, is a combination of NT and Windows, adding new explicitly sized types, integral types that match the precision of a pointer. Almost all (our italics) Win32 data types remain 32 bit pointers, while LPARAM, WPARAM, LRESULT, HMODULE are 64-bits. When you migrate your 32-bit code, you have to identify polymorphism in your internal interfaces, pay attention to compiler warnings and you must not blindly cast warnings away. He suggested programmers use Microsoft's "Address Space Sandbox". Win64 supports the Large Address Aware image file characteristic. If a flag is CLEAR set, a process has no access to addresses greater than 2Gb. All addresses, he said, can be safely truncated into a 32-bit quantity. If the flag is SET, the entire 64-bit address space is available to the process. In summary, he said, Microsoft's "Sandbox" allows developers to ignore pointer truncation warnings. A port to Win64 becomes a recompile and minor API adaptations, and you are limited to 2Gb of address space. If developers don't need more than 2Gb of address space, they can use the "Sandbox" for a fast and easy port. IA-64 HAL features include PNP drivers only, assume no ISA slots, have no bus lock support, one TLB domain and ACPI only. Win64, he concluded, does not explicitly support loading an IA-32 DLL into the address space of a native Win64 process, and conversely does not support loading a native Win64 DLL into the address space of an IA-32 process. ® Intel Developer Forum coverage

Sponsored: 5 critical considerations for enterprise cloud backup