As of Windows 10.0.29580.1000
This page is based on 217 system keyboard drivers.
The following tables contain virtual keys mapped to keys that output characters.
| Drivers | Virtual keys used in this number of drivers |
|---|---|
| 1 | ABNT C1 ยท ABNT C2 ยท OEM AUTO |
| 4 | OEM NEC EQUAL ยท SEPARATOR |
| 26 | OEM 8 |
| 168 | OEM 102 |
| 203 | OEM 5 |
| 204 | OEM PLUS |
| 210 | OEM 3 ยท Z |
| 212 | OEM MINUS |
| 214 | 2 ยท 3 ยท 4 ยท 6 ยท OEM 4 ยท OEM 6 ยท OEM 7 ยท V |
| 215 | 1 ยท 5 ยท 7 ยท 8 ยท 9 ยท OEM 2 ยท OEM COMMA ยท Q ยท W |
| 216 | 0 ยท C ยท G ยท J ยท OEM 1 ยท OEM PERIOD ยท P ยท R ยท T ยท X ยท Y |
| 217 | A ยท ADD ยท B ยท BACK ยท CANCEL ยท D ยท DECIMAL ยท DIVIDE ยท E ยท ESCAPE ยท F ยท H ยท I ยท K ยท L ยท M ยท MULTIPLY ยท N ยท NUMPAD0 ยท NUMPAD1 ยท NUMPAD2 ยท NUMPAD3 ยท NUMPAD4 ยท NUMPAD5 ยท NUMPAD6 ยท NUMPAD7 ยท NUMPAD8 ยท NUMPAD9 ยท O ยท RETURN ยท S ยท SPACE ยท SUBTRACT ยท TAB ยท U |
For example, there is one keyboard driver that contains VK_ABNT_C1 which types something when the key is pressed, and similarly there is one keyboard driver that contains VK_OEM_AUTO that types something. Note however that they are not the same keyboard driver.
| Positions | Virtual keys at this number of different positions across all drivers |
|---|---|
| 14 | OEM 2 |
| 11 | OEM 1 |
| 10 | OEM 6 ยท OEM 8 ยท OEM PERIOD ยท Z |
| 9 | F ยท J ยท OEM 4 ยท OEM 7 ยท OEM COMMA |
| 8 | C ยท D ยท G ยท I ยท L ยท M ยท OEM 5 ยท Q ยท Y |
| 7 | B ยท E ยท K ยท N ยท O ยท OEM 3 ยท OEM MINUS ยท OEM PLUS ยท S ยท V ยท W |
| 6 | A ยท H ยท P ยท R ยท T ยท U ยท X |
| 5 | 0 |
| 4 | 5 ยท 6 ยท 7 ยท 8 ยท 9 |
| 3 | 1 ยท 2 ยท 3 ยท 4 ยท ADD ยท OEM NEC EQUAL ยท RETURN ยท SEPARATOR |
| 2 | CANCEL ยท DECIMAL ยท DIVIDE ยท ESCAPE ยท MULTIPLY ยท NUMPAD0 ยท NUMPAD1 ยท NUMPAD2 ยท NUMPAD3 ยท NUMPAD4 ยท NUMPAD5 ยท NUMPAD6 ยท NUMPAD7 ยท NUMPAD8 ยท NUMPAD9 ยท OEM 102 ยท SPACE ยท SUBTRACT ยท TAB |
| 1 | ABNT C1 ยท ABNT C2 ยท BACK ยท OEM AUTO |
The following tables consider virtual keys that are present in the scancode to virtual key mapping tables, but not in the virtual key to character tables. Note that a virtual key can output text on one layout but not on another, in which case it appears both above and below.
The following table shows virtual keys that are not used, ordered by the number of drivers that don't use the specific virtual key. Notably, the first row shows virtual keys that are defined in the SDK but not mapped to any physical key by any of the system keyboard drivers.
Similarly, the last row shows list of virtual keys that are mapped by all system keyboard drivers. Note that for each virtual key, the driver counts in all tables above should add up to 217 (unless a driver uses the same virtual key on both textual and non-textual keys).