How to use `refreshguid` in VFR?
Can someone explain to me how to use the `refreshguid` keyword?
Currently in the VFR I have a `numeric` element.
I want to change it via the "action" button. For that I've put to its
"config" field a configuration string that changes `numeric` value to
questionid = 0x6666,
prompt = STRING_TOKEN(BTN_STANDARD_DEFAULT_PROMPT),
help = STRING_TOKEN(BTN_STANDARD_DEFAULT_HELP),
flags = INTERACTIVE,
config = STRING_TOKEN(STR_CONFIG),
The change works fine, but I can only see it in the form browser if I
re-open the form or set `refresh interval = <...>` on the numeric
Refreshing by interval looks redundant, so I want to use "refreshguid"
As I understand it, I need to add this opcode to the "numeric" element
and signal appropriate event in the action button callback handler. Am
This is how I've added "refreshguid" to the "numeric":
name = NumericQuestion,
varid = FormData.NumericValue,
prompt = STRING_TOKEN(NUMERIC_PROMPT),
help = STRING_TOKEN(NUMERIC_HELP),
flags = NUMERIC_SIZE_2 | DISPLAY_UINT_HEX | INTERACTIVE,
minimum = 0,
maximum = 10,
step = 1,
default = 7, defaultstore = StandardDefault,
default = 8, defaultstore = ManufactureDefault,
refreshguid = REFRESH_EVENT_GUID,
And this is the code that I've added to my driver:
EFI_GUID RefreshEventGuid = REFRESH_EVENT_GUID;
Callback ( ...)
if (QuestionId == 0x6666)
EFI_STATUS Unload ()
But for some reason element refresh doesn't happen.
What did I do wrong?
I've tried to debug the issue and it looks like the Form Browser
recreates events on each user interaction. And the Callback code is
run when browser events are freed, but not recreated:
-Callback (My driver)
So I'm a little confused. Does this functionality work in the current