UEFI中重启服务是由运行时服务提供的,通过gRT->ResetSystem使用。
电脑启动方式。
enum EFI_RESET_TYPE {
EfiResetCold,
/* 冷重启,将系统所有电路设为初始状态
* 相当于断电再重新通电
主板设为初始状态 */
EfiResetWarm,
/* 热重启,重新初始化系统,CPU被置为初始状态
* 相当于不断电重启
* 如果系统不支持,则执行EfiResetCold */
EfiResetShutdown,
/* 关机, 将计算机置于ACPI G2/S5(软关机)或是G3(断电)状态
* 注: G2/S5和G3的区别在于前者仍有通电部分, 例如ATX规范中用于开机的+5VSB电路
* 如果系统不支持, 则在下次重启时, 它将表现出EfiResetCold的行为 */
EfiResetPlatformSpecific
/* 特殊的冷重启,在重启时传入一段数据
/* 这段数据是一个以空字符结尾的Unicode字符串, 其后接一个EFI_GUID表示重启类型
/* 固件可能会利用这段数据记录非正常的重启 */
};
使用:
gRT->ResetSystem(EfiResetCold, EFI_SUCCESS,0,NULL);