[Fw_Os_Forum] OpenProtocol semantics

Aaron.Pop at congatec.com Aaron.Pop at congatec.com
Mon May 23 13:29:01 EDT 2016


Hi Valerij,

I think you would be better off asking this question in the EDK2 mailing 
list.  These questions that you are asking are more related to the UEFI 
specification than they are to operating systems that support UEFI. 

https://github.com/tianocore/tianocore.github.io/wiki/Getting%20Started%20with%20EDK%20II
z

See the "Futher Help" section with information about the edk2-devel 
mailing list. 




From:   valerij zaporogeci <vlrzprgts at gmail.com>
To:     fw_os_forum at mailman.uefi.org
Date:   05/23/2016 04:47 AM
Subject:        [Fw_Os_Forum] OpenProtocol semantics
Sent by:        fw_os_forum-bounces at mailman.uefi.org



Hi again. I see there is not much activity, but maybe it still has
some sense to ask my farther questions.
The specification says (in the description of
UninstallProtocolInterface() service), that in order to "safely"
uninstall a protocol interface, first the driver consuming it should
be disconnected (through DisconnectController->Stop->CloseProtocol),
and then those with BY_HANDLE_PROTOCOL, TEST_PROTOCOL and GET_PROTOCOL
attributes _should be closed_.
My question is HOW exactly those three types of agents are really
supposed to have been "closed"?
And also - is there really a necessity to hold information about those
three types of agents in the data base? How is it used? By whom?
Clients opening the protool one of those three ways are even not
required to CloseProtocol() and there is a clear notice that for
example driver opening with GET_PROTOCOL would not be notified about
the protocol uninstallation\reinstallation. So there is no mechanism
to safely use GET_PROTOCOL, and client opening with TEST_PROTOCOL
should only rely on the status code returned. All these things make
question the necessity to hold information about such types of opening
in the data base. And again - how they should be closed? For example
those opening with BY_HANDLE_PROTOCOL would pass the UEFI image handle
as an AgentHandle. What here may be "closed"? If it's not about
unloading the image (whose handle is an AgnetHandle), and this is only
about the database "book keeping", then for what it is? In the case of
those thee types of opening?
As a consequense - would it be compliant to only keep in the data base
the information about BY_DRIVER, BY_DRIVER_EXCLUSIVE, EXCLUSIVE and
BY_CHILD_CONTROLLER types of opening?
Thanks.
_______________________________________________
Fw_os_forum mailing list
Fw_os_forum at mailman.uefi.org
http://lists.mailman.uefi.org/mailman/listinfo/fw_os_forum


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mailman.uefi.org/pipermail/fw_os_forum/attachments/20160523/256a0354/attachment.html>


More information about the Fw_os_forum mailing list