[if gte mso 9]>
Subject: Re: [edk2] Dynamic Shell Command Registration
From: "Cohen, Eugene" <firstname.lastname@example.org>
To: "email@example.com" <firstname.lastname@example.org>
Date: 2011-10-05 01:17:45
The use case here isn’t a filesystem-based extension (.efi) but an existing flash-based module (MyDxeDriver.efi) using a shell protocol to register a new command.
This approach should allow for an architectural improvement to the shell since a driver can carry its own code for shell commands instead of centralizing it all in one shell binary. Would you be open to adding some sort of additional protocol (outside the scope of the shell spec) to support this kind of use case?
No. This feature was not part of the UEFI Shell specification.
However, if you put your .EFI file in a directory in the path (like fs0:\efi\tools\), and it has a name unique from internal commands of the shell it will function almost the same as an internal command.
The only differences are things like being able to move the “execution pointer” around in script files. I don’t think that should impact the majority of shell applications.
Is there a way with the new shell (ShellPkg) to dynamically register a shell command from another module through a protocol interface? The old (unimplemented by new shell) ShellEnvironment2 supported this.