The WOW subsystem of the operating system thunks legacy 16-bit APIs to their newer 32-bit equivalents[clarification needed] in order to provide support for 16-bit pointers, memory models and address space.
All 16-bit programs run by default in a single virtual DOS machine with shared memory space.
However, they can be configured to run in their own separate memory space, in which case each 16-bit process has its own dedicated virtual machine.
For example, they may incorrectly assume full write access to the whole file system whereas NTFS security is in place.
A considerable number of shims are present in the application compatibility layer of later versions of Windows to intercept and modify API calls made by legacy applications that were written with a different set of assumptions and operating system best practices in mind.