UEFI 编程模型
UEFI Shell 提供一个编程 API。可使用它编写您自己的 UEFI 应用程序,用于调用某些 Shell 编程 API 或协议。有关详细信息,请参阅UEFI Shell 规范和 EDK2。UEFI Shell 提供一个编程 API,如下表所列。EFI_SHELL_PROTOCOL 向 UEFI 应用程序提供 Shell 服务。通过它,UEFI Shell 应用程序可访问底层 Shell 函数,包括文件、管道、环境变量、当前工作目录、映射、帮助文本、别名,并可启动 Shell 应用程序和脚本。
函数类型 |
函数名称 |
说明 |
---|---|---|
|
Execute |
使 Shell 分析并执行命令行。 |
|
GetEnv |
获取环境变量。 |
|
SetEnv |
更改特定环境变量。 |
|
GetAlias |
检索特定 Shell 命令的别名。 |
|
SetAlias |
添加或删除特定 Shell 命令的别名。 |
|
GetHelpText |
返回有关特定命令的帮助信息。 |
|
GetDevicePathFromMap |
返回与映射对应的设备路径。 |
|
GetMapFromDevicePath |
返回与特定设备路径对应的映射。 |
|
GetDevicePathFromFilePath |
将文件路径转换为设备路径,其中已将所有映射替换为相应的设备路径。 |
|
GetFilePathFromDevicePath |
将设备路径转换为文件路径,其中将设备路径中与某个映射对应的部分替换为该映射。 |
|
SetMap |
创建、更新或删除设备与设备路径之间的映射。 |
|
GetCurDir |
返回设备上的当前目录。 |
|
SetCurDir |
更改设备上的当前目录。 |
|
OpenFileList |
打开与指定的路径模式匹配的文件。 |
|
FreeFileList |
释放由 OpenFileList() 创建的文件列表。 |
|
RemoveDupInFileList |
删除给定文件列表中的重复文件。 |
|
BatchIsActive |
显示是否正在处理任何脚本文件。 |
|
IsRootShell |
验证活动的 Shell 是否为根 Shell。 |
|
EnablePageBreak |
启用分页输出模式。 |
|
DisablePageBreak |
禁用分页输出模式。 |
|
GetPageBreak |
获取分页输出模式的启用状态。 |
|
GetDeviceName |
获取由设备句柄指定的设备的名称。 |
|
GetFileInfo |
显示有关特定文件句柄的信息。 |
|
SetFileInfo |
更改有关特定文件句柄的信息。 |
|
OpenFileByName |
打开按名称指定的文件并返回文件句柄。 |
|
CloseFile |
关闭打开的文件。 |
|
CreateFile |
创建文件。 |
|
ReadFile |
从文件读取数据。 |
|
WriteFile |
将数据写入文件。 |
|
DeleteFile |
删除文件。 |
|
DeleteFileByName |
按名称删除文件。 |
|
GetFilePosition |
显示文件中当前的读/写位置。 |
|
SetFilePosition |
更改文件中当前的读/写位置。 |
|
FlushFile |
将所有缓冲的数据写入文件。 |
|
FindFiles |
在文件列表中显示所有与某个模式匹配的文件。 |
|
FindFilesInDir |
在文件列表中显示指定目录中的所有文件。 |
|
GetFileSize |
显示文件的大小。 |
|
OpenRoot |
显示文件系统的根目录。 |
|
OpenRootByHandle |
显示特定句柄上文件系统的根目录。 |
|
ExecutionBreak |
当用户按 CTRL-C 时 UEFI Shell 发出一个事件以指示应中断执行当前的 UEFI Shell 命令。 |
|
MajorVersion |
Shell 环境的主版本。 |
|
MinorVersion |
Shell 环境的次版本。 |