<font size=2 face="Calibri">Hi Valerij,</font>
<br>
<br><font size=2 face="Calibri">I think you would be better off asking
this question in the EDK2 mailing list. &nbsp;These questions that you
are asking are more related to the UEFI specification than they are to
operating systems that support UEFI. </font>
<br>
<br><a href=https://github.com/tianocore/tianocore.github.io/wiki/Getting%20Started%20with%20EDK%20II><font size=2 color=blue face="Calibri">https://github.com/tianocore/tianocore.github.io/wiki/Getting%20Started%20with%20EDK%20II</font></a><font size=2 face="Calibri">z</font>
<br>
<br><font size=2 face="Calibri">See the &quot;Futher Help&quot; section
with information about the edk2-devel mailing list. </font>
<br>
<br>
<br>
<br>
<br><font size=1 color=#5f5f5f face="sans-serif">From: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">valerij zaporogeci
&lt;vlrzprgts@gmail.com&gt;</font>
<br><font size=1 color=#5f5f5f face="sans-serif">To: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">fw_os_forum@mailman.uefi.org</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Date: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">05/23/2016 04:47 AM</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Subject: &nbsp; &nbsp;
&nbsp; &nbsp;</font><font size=1 face="sans-serif">[Fw_Os_Forum]
OpenProtocol semantics</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Sent by: &nbsp; &nbsp;
&nbsp; &nbsp;</font><font size=1 face="sans-serif">fw_os_forum-bounces@mailman.uefi.org</font>
<br>
<hr noshade>
<br>
<br>
<br><tt><font size=2>Hi again. I see there is not much activity, but maybe
it still has<br>
some sense to ask my farther questions.<br>
The specification says (in the description of<br>
UninstallProtocolInterface() service), that in order to &quot;safely&quot;<br>
uninstall a protocol interface, first the driver consuming it should<br>
be disconnected (through DisconnectController-&gt;Stop-&gt;CloseProtocol),<br>
and then those with BY_HANDLE_PROTOCOL, TEST_PROTOCOL and GET_PROTOCOL<br>
attributes _should be closed_.<br>
My question is HOW exactly those three types of agents are really<br>
supposed to have been &quot;closed&quot;?<br>
And also - is there really a necessity to hold information about those<br>
three types of agents in the data base? How is it used? By whom?<br>
Clients opening the protool one of those three ways are even not<br>
required to CloseProtocol() and there is a clear notice that for<br>
example driver opening with GET_PROTOCOL would not be notified about<br>
the protocol uninstallation\reinstallation. So there is no mechanism<br>
to safely use GET_PROTOCOL, and client opening with TEST_PROTOCOL<br>
should only rely on the status code returned. All these things make<br>
question the necessity to hold information about such types of opening<br>
in the data base. And again - how they should be closed? For example<br>
those opening with BY_HANDLE_PROTOCOL would pass the UEFI image handle<br>
as an AgentHandle. What here may be &quot;closed&quot;? If it's not about<br>
unloading the image (whose handle is an AgnetHandle), and this is only<br>
about the database &quot;book keeping&quot;, then for what it is? In the
case of<br>
those thee types of opening?<br>
As a consequense - would it be compliant to only keep in the data base<br>
the information about BY_DRIVER, BY_DRIVER_EXCLUSIVE, EXCLUSIVE and<br>
BY_CHILD_CONTROLLER types of opening?<br>
Thanks.<br>
_______________________________________________<br>
Fw_os_forum mailing list<br>
Fw_os_forum@mailman.uefi.org<br>
</font></tt><a href=http://lists.mailman.uefi.org/mailman/listinfo/fw_os_forum><tt><font size=2>http://lists.mailman.uefi.org/mailman/listinfo/fw_os_forum</font></tt></a><tt><font size=2><br>
</font></tt>
<br>
<br>