Reviewed-by: Hao Wu <[email protected]> Best Regards, Hao Wu
> -----Original Message----- > From: Ni, Ruiyu > Sent: Friday, September 07, 2018 1:48 PM > To: [email protected] > Cc: Kinney, Michael D; Wu, Hao A > Subject: [PATCH v2] 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 <[email protected]> > Cc: Michael D Kinney <[email protected]> > Cc: Hao A Wu <[email protected]> > --- > EmulatorPkg/Win/Host/WinHost.c | 2 +- > EmulatorPkg/Win/Host/WinThunk.c | 23 ++++++++++++++++------- > 2 files changed, 17 insertions(+), 8 deletions(-) > > diff --git a/EmulatorPkg/Win/Host/WinHost.c > b/EmulatorPkg/Win/Host/WinHost.c > index 9b98d5330f..65e8960eff 100644 > --- a/EmulatorPkg/Win/Host/WinHost.c > +++ b/EmulatorPkg/Win/Host/WinHost.c > @@ -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 > diff --git a/EmulatorPkg/Win/Host/WinThunk.c > b/EmulatorPkg/Win/Host/WinThunk.c > index 306fe75ecd..6007db73b5 100644 > --- a/EmulatorPkg/Win/Host/WinThunk.c > +++ b/EmulatorPkg/Win/Host/WinThunk.c > @@ -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) > - ); > - } > - if (Success) { > + 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 terminal mode > + // 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) { > Success = GetConsoleMode (GetStdHandle (STD_OUTPUT_HANDLE), > &Mode); > if (Success) { > Success = SetConsoleMode ( > @@ -88,6 +96,7 @@ SecConfigStdIn ( > ); > } > } > +#endif > return Success ? EFI_SUCCESS : EFI_DEVICE_ERROR; > } > > -- > 2.16.1.windows.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

