In
Windows 3.1 and earlier, there is no native support for consoles. Because those version are merely a graphical interface for MS-DOS, most text programs that ran on earlier Windows versions were actually MS-DOS programs running in a window. To simplify the task of porting applications to Windows, early versions of
Visual C++ are supplied with
QuickWin, a library that implements basic console functionality inside a regular window. A similar library for
Borland C++ was called
EasyWin.
Windows 9x running in a Windows console on
Windows 95 Windows 9x support is relatively poor compared to
Windows NT, because the console window runs in the system
virtual DOS machine and so keyboard input to a Win32 console application had to be directed to it by
conagent.exe running in a DOS VM that are also used for real DOS applications by hooking the keyboard interrupt. conagent.exe then calls
Vcond (which is a
VxD).
Vcond then had to pass the keyboard input to the System VM, and then finally to the Win32 console application. Besides performance, another problem with this implementation is that drives that are local to a DOS VM are not visible to a Win32 console application. This can cause confusion. Under Windows 9x, the screen buffer mirrors the structure of
VGA text buffer, with two bytes per character cell: one byte for character code, one byte for attributes (the character must be in
OEM character set, the attribute is with high-intensity background/no blinking). This speeds up operation considerably if the actual VGA text mode is used.
Windows NT and Windows CE running
Bash on
Windows 10 running on
Windows CE 3.0 Traditionally, the
Client/Server Runtime Subsystem (CSRSS) has been responsible for managing console windows on the
Windows NT family of operating systems. In
Windows 7, CSRSS spawns one conhost.exe for each console window, to manage it. In
Windows 8 and later, the console applications spawn their conhost.exe processes directly. This change has both security and usability implications. While CSRSS runs in a highly privileged security context, each conhost.exe runs in the same security context as the console app. In addition, in Windows 7, this change enabled console windows to have the features of the
Aero Glass theme. On Windows NT and
Windows CE, the screen buffer uses four bytes per character cell: two bytes for character code, two bytes for attributes. The character is then encoded in a 16-bit subset of
Unicode (
UCS-2). For backward compatibility, the console APIs exist in two versions: Unicode and non-Unicode. The non-Unicode versions of APIs can use
code page switching to extend the range of displayed characters (but only if
TrueType fonts are used for the console window, thereby extending the range of codes available). Even
UTF-8 is available as "code page 65001" (displaying only from the UCS-2 subset of full Unicode). As of the
Windows 10 October 2018 update, the Windows Console has full Unicode support. ==See also==