Closing EFI_SHELL_PARAMETERS_PROTOCOL gives EFI_INVALID_PARAMETER


josh.a.seaton@...
 

Hi all,

I'm noticing the following (unspec'd?) behaviour in a shell-run
application with the handling of the EFI_SHELL_PARAMETERS_PROTOCOL:
* It gets opened with (Handle, AgentHandle, ControllerHandle,
Attributes) = (application's image handle, ditto, NULL,
EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL)
* The protocol then works as intended
* Closing with (Handle, AgentHandle, ControllerHandle) =
(application's image handle, ditto, NULL) yields EFI_INVALID_PARAMETER

Any idea what's going on here, and how it ought to be resolved?

As a possible clue, I've noticed that passing the additional attribute
of EFI_OPEN_PROTOCOL_EXCLUSIVE makes this problem go away (but I don't
grok things well enough to know why or if that is the desired fix).


Joshua.