Required Virtual Keys

The complete virtual-key code set consists of 256 byte values in the range 0 to 255. Most, but not all, of the values used by standard drivers are in the range 0 to 127. There is a loose distinction between "standard" keys, which do not vary much, and "OEM" keys, which do vary from keyboard to keyboard.

For full Windows functionality, a keyboard driver must provide the following virtual keys:

Virtual-key code Description
VK_0 through VK_9 Number keys (not on numeric keypad): 0 through 9
VK_A through VK_Z Letter keys: A through Z
VK_BACK BACKSPACE key
VK_CONTROL CTRL key
VK_DELETE DELETE key
VK_DOWN Down direction key
VK_END END key
VK_ESCAPE ESC key
VK_F1 through VK_F10 F1 through F10 keys
VK_HOME HOME key
VK_INSERT INSERT key
VK_LEFT Left direction key
VK_MENU ALT key
VK_NEXT PAGE DOWN key
VK_PRIOR PAGE UP key
VK_RIGHT Right direction key
VK_SHIFT Left and right SHIFT keys
VK_SNAPSHOT PRINTSCREEN key
VK_SPACE SPACE key
VK_TAB TAB key
VK_UP Up direction key

Shift keys must be available in the combinations unshifted, SHIFT, CTRL, and CTRL+ALT.

Most keyboards, the virtual-key codes VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, and VK_NEXT are generated on the numeric keypad only if NUMLOCK is off.