Win32 has several explicit goals and constraints:
The API set is upward compatible with the current 16-bit Windows 3.0 API set. functions have only been changed where there is an absolute need to do so.
Porting an existing 16-bit Windows 3.0 application to Win32 is simple and straightforward.
Absolute source level compatibility exists between Win32 on x86 and Win32 on MIPS. Absolute binary compatibility exists between Win32 on DOS and Win32 on Windows NT.
Processes execute in separate address spaces.
Multiple concurrent threads of execution are available within a process. Scheduling is preemptive. The API is designed with symmetric multiprocessing in mind.
The memory addressing scheme is flat 32-bit addressing.
The Win32 API set is portable across all platforms.