WOW stands for “Win16 on Win32,” a component of the Microsoft Windows NT operating system that enables 16-bit Microsoft Windows applications (such as those designed to run on Windows 3.1 and Windows for Workgroups 3.11) to run properly on Windows NT’s 32-bit operating system.
How WOW Works
Like MS-DOS applications, 16-bit Windows applications (Win16 applications) also run on Windows NT within the context of a Windows NT Virtual DOS Machine (NTVDM), which simulates the 16-bit environment necessary for these applications to run.
However, while MS-DOS applications each require their own separate NTVDMs in which to run, Win16 applications run within a single NTVDM called WOW, which corresponds to the system process wowexec.exe. And while NTVDMs hosting MS-DOS applications are single-threaded, WOW is a multithreaded NTVDM in which each Win16 application runs as a separate thread using the same shared address space.
WOW will allow only one Win16 application to run at a time, blocking the threads of all other Win16 applications until the running application relinquishes control. If the Windows NT kernel needs to preempt the Win16 application (by preempting WOW), it always resumes with the same Win16 application.
WOW also handles the translation of 16-bit Windows application programming interfaces (APIs) and messages to their corresponding 32-bit APIs and messages, enabling interoperability and data sharing between 16-bit and 32-bit Windows applications on the Windows NT platform.
WOW starts automatically when the first Win16 application is started on the Windows NT system.
Windows NT also includes an option for running Win16 applications in their own separate NTVDMs, which enables Win16 applications to function as a process within Windows NT’s preemptive, multitasking environment. You can run a Win16 application in a separate NTVDM by opening the Run box from the Start menu, typing the path to the Win16 executable, and selecting the Run In Separate Memory Space check box. Note that doing this can have negative effects on Win16 applications that need to share data with each other by using legacy data-sharing mechanisms such as Dynamic Data Exchange (DDE).