- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SERMODE_SET_FAIL), gShellDebug1HiiHandle, ConvertHandleToHandleIndex(Handles[Index]), Status);\r
- ShellStatus = SHELL_ACCESS_DENIED;\r
+ if (Status == EFI_INVALID_PARAMETER) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SERMODE_SET_UNSUPPORTED), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex(Handles[Index])); \r
+ ShellStatus = SHELL_UNSUPPORTED;\r
+ } else if (Status == EFI_DEVICE_ERROR) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SERMODE_SET_DEV_ERROR), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex(Handles[Index])); \r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
+ } else {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SERMODE_SET_FAIL), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex(Handles[Index])); \r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
+ }\r