Windows applications send characters to other Windows applications with the WM_KEYDOWN and WM_KEYUP messages. These messages are expected to get the appropriate virtual-key codes to send by using the VkKeyScan, OemKeyScan, or MapVirtualKey function. The applications must not assume any fixed translation of the VK_OEM_* keys. To support these functions, the keyboard driver can scan existing translation tables to locate the given ANSI or OEM character code and subsequently identify the scan code.