You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The OpenProtocolAttributes enum is currently missing a representation of the EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL value defined by UEFI. Without this, there doesn't seem to be a way to directly open a protocol from a specified handle non-exclusively. Some example code:
When attempting to open the GraphicsOutput protocol exclusively here, an error seems to be encountered, presumably either upon opening the protocol or somewhere in uefi_services::println!, so non-exclusivity seems to be required here. However, the code succeeds when performing the unsafe transmute from 1 (the value that EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL is defined to be).
The text was updated successfully, but these errors were encountered:
It looks like GetProtocol will work in this circumstance so this ticket probably no longer affects me, although more generally GET_PROTOCOL does have the caveat that any notification events created to be signaled upon a protocol being reinstalled will not be notified in the case of the protocol having been opened via GET_PROTOCOL -- only if it has been opened via BY_HANDLE_PROTOCOL, if I'm understanding the UEFI spec correctly.
The
OpenProtocolAttributes
enum is currently missing a representation of theEFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL
value defined by UEFI. Without this, there doesn't seem to be a way to directly open a protocol from a specified handle non-exclusively. Some example code:When attempting to open the
GraphicsOutput
protocol exclusively here, an error seems to be encountered, presumably either upon opening the protocol or somewhere inuefi_services::println!
, so non-exclusivity seems to be required here. However, the code succeeds when performing the unsafetransmute
from 1 (the value thatEFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL
is defined to be).The text was updated successfully, but these errors were encountered: