Specifications

Version 2.0
69
3.10.3 Output Streaming Control
The UEFI Shell supports the ability to pause and resume the streaming of characters
to the output device. The user can press the CTRL-S key sequence to pause and any
key to resume the output results produced by the current running commands or
applications. It is especially useful for the commands and applications that may
produce a great deal of the output results.
3.10.4 Scroll Back Buffer Support
The UEFI Shell supports the ability to scroll back and forward the output so that
consoles can have screen history. The user can press Page Up and Page Down to scroll
back and forward the screen history, and press any other key to quit scrolling.
However, the user cannot do this while the command, application or script is being
executed. The text output history will be at least 3 screens.
3.11 Shell Applications
UEFI Shell applications have the extension .efi and have the same entry point
(EFI_IMAGE_ENTRY_POINT) defined in section 4.1 of the UEFI specification. When the
entry point to a shell command is called, the image handle (ImageHandle) has both
the EFI_LOADED_IMAGE_PROTOCOL and the EFI_SHELL_PARAMETERS_PROTOCOL installed
on it.
In the EFI_LOADED_IMAGE_PROTOCOL, the LoadOptions member points to the NULL-
terminated, expanded command line. The first part (which corresponds to Argv[0] in
the EFI_SHELL_PARAMETERS_PROTOCOL) is the file path of the executable after alias
substitution.
After this, delimited by a whitespace character, are listed each of the arguments, with
all environment variables expanded, and with quotation marks still present. This is
different from what appears in Argv[] in the EFI_SHELL_PARAMETERS_PROTOCOL.
The EFI_SHELL_PARAMETERS_PROTOOCOL has two members: Argv, which points to each
of the command-line arguments and Argc, which is the number of command-line
arguments. There is always at least one command-line argument: the path and file
name of the shell command. Any arguments are enumerated in Argv[1-n], with all
environment variables expanded and all quotation marks removed.
If ExecutionBreak was signaled during the execution of a UEFI Shell application, then
it will be cleared upon return to the shell.
3.11.1 Installation
During installation, UEFI Shell applications may choose to update certain global files
or settings, which are used for detecting installed UEFI Shell profiles or providing help
text for UEFI shell applications.
During installation, UEFI Shell applications may update the profiles environment
variable, which lists all of the command profiles supported by the current