Hi All,

I am writing a Library of DXE_SMM_DRIVER type. In Library constructor,
"SMST->SmmRegisterProtocolNotify()" is used to register notification
function for Protocol gEtiSmmguid(for example).

This library is included in one SMM driver. In entry point of driver,
some of the  condition checks are failing so ERROR status is returned
from Entry point. As ERROR status is returned from entry point, image is
getting unloaded from memory. 

When gEtiSmmguid is installed in some other SMM driver, system is
hanging as it is looking for Registered context and could not find it as
the driver has already been unloaded.

For DXE case, I use Library destructor to close the registered/created
event but I don't find any way for SMM case.

Is there any way to unregister the function which was registered with
SMST->SmmRegisterProtocolNotify() ?

Please give your suggestions.

Note: Returning EFI_SUCCESS from entry point of the driver where the
library is included resolves the issue but I am looking for a better
solution.

Thanks,
Naresh

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to