+ IN TERMINAL_DEV *TerminalDevice\r
+ );\r
+\r
+/**\r
+ Converts a stream of Unicode characters from a terminal input device into EFI Keys that\r
+ can be read through the Simple Input Protocol.\r
+\r
+ The table below shows the keyboard input mappings that this function supports.\r
+ If the ESC sequence listed in one of the columns is presented, then it is translated\r
+ into the coorespoding EFI Scan Code. If a matching sequence is not found, then the raw\r
+ key strokes are converted into EFI Keys.\r
+\r
+ 2 seconds are allowed for an ESC sequence to be completed. If the ESC sequence is not\r
+ completed in 2 seconds, then the raw key strokes of the partial ESC sequence are\r
+ converted into EFI Keys.\r
+ There is one special input sequence that will force the system to reset.\r
+ This is ESC R ESC r ESC R.\r
+\r
+ Symbols used in table below\r
+ ===========================\r
+ ESC = 0x1B\r
+ CSI = 0x9B\r
+ DEL = 0x7f\r
+ ^ = CTRL\r
+ +=========+======+===========+==========+==========+\r
+ | | EFI | UEFI 2.0 | | |\r
+ | | Scan | | VT100+ | |\r
+ | KEY | Code | PC ANSI | VTUTF8 | VT100 |\r
+ +=========+======+===========+==========+==========+\r
+ | NULL | 0x00 | | | |\r
+ | UP | 0x01 | ESC [ A | ESC [ A | ESC [ A |\r
+ | DOWN | 0x02 | ESC [ B | ESC [ B | ESC [ B |\r
+ | RIGHT | 0x03 | ESC [ C | ESC [ C | ESC [ C |\r
+ | LEFT | 0x04 | ESC [ D | ESC [ D | ESC [ D |\r
+ | HOME | 0x05 | ESC [ H | ESC h | ESC [ H |\r
+ | END | 0x06 | ESC [ F | ESC k | ESC [ K |\r
+ | INSERT | 0x07 | ESC [ @ | ESC + | ESC [ @ |\r
+ | | | ESC [ L | | ESC [ L |\r
+ | DELETE | 0x08 | ESC [ X | ESC - | ESC [ P |\r
+ | PG UP | 0x09 | ESC [ I | ESC ? | ESC [ V |\r
+ | | | | | ESC [ ? |\r
+ | PG DOWN | 0x0A | ESC [ G | ESC / | ESC [ U |\r
+ | | | | | ESC [ / |\r
+ | F1 | 0x0B | ESC [ M | ESC 1 | ESC O P |\r
+ | F2 | 0x0C | ESC [ N | ESC 2 | ESC O Q |\r
+ | F3 | 0x0D | ESC [ O | ESC 3 | ESC O w |\r
+ | F4 | 0x0E | ESC [ P | ESC 4 | ESC O x |\r
+ | F5 | 0x0F | ESC [ Q | ESC 5 | ESC O t |\r
+ | F6 | 0x10 | ESC [ R | ESC 6 | ESC O u |\r
+ | F7 | 0x11 | ESC [ S | ESC 7 | ESC O q |\r
+ | F8 | 0x12 | ESC [ T | ESC 8 | ESC O r |\r
+ | F9 | 0x13 | ESC [ U | ESC 9 | ESC O p |\r
+ | F10 | 0x14 | ESC [ V | ESC 0 | ESC O M |\r
+ | Escape | 0x17 | ESC | ESC | ESC |\r
+ | F11 | 0x15 | | ESC ! | |\r
+ | F12 | 0x16 | | ESC @ | |\r
+ +=========+======+===========+==========+==========+\r
+\r
+ Special Mappings\r
+ ================\r
+ ESC R ESC r ESC R = Reset System\r
+\r
+\r
+ @param TerminalDevice The terminal device to use to translate raw input into EFI Keys\r