mirror of https://github.com/acidanthera/audk.git
Emulator/Win: Fix build failure using VS2015x86 or old WinSDK
When build with WinSDK <= Win10 TH2, the terminal over CMD.exe doesn't work. Because Win10 later than TH2 starts to support VT terminal. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
This commit is contained in:
parent
289cb872ed
commit
f4eaaf1a6d
|
@ -673,7 +673,7 @@ Returns:
|
|||
// Transfer control to the SEC Core
|
||||
//
|
||||
SwitchStack (
|
||||
(SWITCH_STACK_ENTRY_POINT)SecCoreEntryPoint,
|
||||
(SWITCH_STACK_ENTRY_POINT)(UINTN)SecCoreEntryPoint,
|
||||
SecCoreData,
|
||||
GetThunkPpiList (),
|
||||
TopOfStack
|
||||
|
|
|
@ -71,15 +71,23 @@ SecConfigStdIn (
|
|||
//
|
||||
// Disable buffer (line input), echo, mouse, window
|
||||
//
|
||||
Success = SetConsoleMode (
|
||||
GetStdHandle (STD_INPUT_HANDLE),
|
||||
Mode | ENABLE_VIRTUAL_TERMINAL_INPUT & ~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT | ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT)
|
||||
);
|
||||
Mode &= ~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT | ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT);
|
||||
|
||||
#if defined(NTDDI_VERSION) && defined (NTDDI_WIN10_TH2) && (NTDDI_VERSION > NTDDI_WIN10_TH2)
|
||||
//
|
||||
// Enable virtual terminal input for Win10 above TH2
|
||||
//
|
||||
Mode |= ENABLE_VIRTUAL_TERMINAL_INPUT;
|
||||
#endif
|
||||
|
||||
Success = SetConsoleMode (GetStdHandle (STD_INPUT_HANDLE), Mode);
|
||||
}
|
||||
|
||||
#if defined(NTDDI_VERSION) && defined (NTDDI_WIN10_TH2) && (NTDDI_VERSION > NTDDI_WIN10_TH2)
|
||||
//
|
||||
// Enable terminal mode for Win10 above TH2
|
||||
//
|
||||
if (Success) {
|
||||
//
|
||||
// Enable terminal mode
|
||||
//
|
||||
Success = GetConsoleMode (GetStdHandle (STD_OUTPUT_HANDLE), &Mode);
|
||||
if (Success) {
|
||||
Success = SetConsoleMode (
|
||||
|
@ -88,6 +96,7 @@ SecConfigStdIn (
|
|||
);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return Success ? EFI_SUCCESS : EFI_DEVICE_ERROR;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue