Closing EFI_SHELL_PARAMETERS_PROTOCOL gives EFI_INVALID_PARAMETER
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,
* 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).