+/**\r
+ Try to boot the boot option triggered by hotkey.\r
+**/\r
+VOID\r
+HotkeyBoot (\r
+ VOID\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+ UINTN ExitDataSize;\r
+ CHAR16 *ExitData;\r
+ \r
+ if (mHotkeyBootOption != NULL) {\r
+ BdsLibConnectDevicePath (mHotkeyBootOption->DevicePath);\r
+\r
+ //\r
+ // Clear the screen before launch this BootOption\r
+ //\r
+ gST->ConOut->Reset (gST->ConOut, FALSE);\r
+\r
+ Status = BdsLibBootViaBootOption (mHotkeyBootOption, mHotkeyBootOption->DevicePath, &ExitDataSize, &ExitData);\r
+\r
+ if (EFI_ERROR (Status)) {\r
+ //\r
+ // Call platform action to indicate the boot fail\r
+ //\r
+ mHotkeyBootOption->StatusString = GetStringById (STRING_TOKEN (STR_BOOT_FAILED));\r
+ PlatformBdsBootFail (mHotkeyBootOption, Status, ExitData, ExitDataSize);\r
+ } else {\r
+ //\r
+ // Call platform action to indicate the boot success\r
+ //\r
+ mHotkeyBootOption->StatusString = GetStringById (STRING_TOKEN (STR_BOOT_SUCCEEDED));\r
+ PlatformBdsBootSuccess (mHotkeyBootOption);\r
+ }\r
+ FreePool (mHotkeyBootOption->Description);\r
+ FreePool (mHotkeyBootOption->DevicePath);\r
+ FreePool (mHotkeyBootOption->LoadOptions);\r
+ FreePool (mHotkeyBootOption);\r
+\r
+ mHotkeyBootOption = NULL;\r
+ }\r
+}\r
+\r