Add Example for EFI_BROWSER_ACTION_RETRIEVE callback
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9426 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -556,6 +556,7 @@ DriverCallback (
|
|||||||
EFI_IFR_GUID_LABEL *EndLabel;
|
EFI_IFR_GUID_LABEL *EndLabel;
|
||||||
EFI_INPUT_KEY Key;
|
EFI_INPUT_KEY Key;
|
||||||
DRIVER_SAMPLE_CONFIGURATION *Configuration;
|
DRIVER_SAMPLE_CONFIGURATION *Configuration;
|
||||||
|
UINTN MyVarSize;
|
||||||
|
|
||||||
if (Action == EFI_BROWSER_ACTION_FORM_OPEN) {
|
if (Action == EFI_BROWSER_ACTION_FORM_OPEN) {
|
||||||
//
|
//
|
||||||
@ -624,7 +625,6 @@ DriverCallback (
|
|||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Status = EFI_SUCCESS;
|
Status = EFI_SUCCESS;
|
||||||
PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);
|
PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);
|
||||||
|
|
||||||
@ -821,12 +821,13 @@ DriverCallback (
|
|||||||
// Change an EFI Variable storage (MyEfiVar) asynchronous, this will cause
|
// Change an EFI Variable storage (MyEfiVar) asynchronous, this will cause
|
||||||
// the first statement in Form 3 be suppressed
|
// the first statement in Form 3 be suppressed
|
||||||
//
|
//
|
||||||
|
MyVarSize = 1;
|
||||||
MyVar = 111;
|
MyVar = 111;
|
||||||
Status = gRT->SetVariable(
|
Status = gRT->SetVariable(
|
||||||
L"MyVar",
|
L"MyVar",
|
||||||
&mFormSetGuid,
|
&mFormSetGuid,
|
||||||
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
|
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
|
||||||
1,
|
MyVarSize,
|
||||||
&MyVar
|
&MyVar
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@ -870,6 +871,21 @@ DriverCallback (
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0x1111:
|
||||||
|
//
|
||||||
|
// EfiVarstore question takes sample action (print value as debug information)
|
||||||
|
// after read/write question.
|
||||||
|
//
|
||||||
|
MyVarSize = 1;
|
||||||
|
Status = gRT->GetVariable(
|
||||||
|
L"MyVar",
|
||||||
|
&mFormSetGuid,
|
||||||
|
NULL,
|
||||||
|
&MyVarSize,
|
||||||
|
&MyVar
|
||||||
|
);
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
DEBUG ((DEBUG_INFO, "EfiVarstore question: Tall value is %d with value width %d\n", MyVar, MyVarSize));
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ formset
|
|||||||
// Define a EFI variable Storage (EFI_IFR_VARSTORE_EFI)
|
// Define a EFI variable Storage (EFI_IFR_VARSTORE_EFI)
|
||||||
//
|
//
|
||||||
efivarstore MyEfiVar, // Define referenced name in vfr
|
efivarstore MyEfiVar, // Define referenced name in vfr
|
||||||
attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS, // EFI variable attribures
|
attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE, // EFI variable attribures
|
||||||
name = STRING_TOKEN(STR_VAR_NAME), // EFI variable name
|
name = STRING_TOKEN(STR_VAR_NAME), // EFI variable name
|
||||||
varsize = 1, // Size of the EFI variable
|
varsize = 1, // Size of the EFI variable
|
||||||
guid = FORMSET_GUID; // EFI variable GUID
|
guid = FORMSET_GUID; // EFI variable GUID
|
||||||
@ -153,9 +153,9 @@ formset
|
|||||||
oneof varid = MyIfrNVData.BootOrderLarge,
|
oneof varid = MyIfrNVData.BootOrderLarge,
|
||||||
prompt = STRING_TOKEN(STR_ONE_OF_PROMPT),
|
prompt = STRING_TOKEN(STR_ONE_OF_PROMPT),
|
||||||
help = STRING_TOKEN(STR_ONE_OF_HELP),
|
help = STRING_TOKEN(STR_ONE_OF_HELP),
|
||||||
default value = cond (questionref(MyOneOf) == 0x0 ? 0 : 1),
|
default value = cond (pushthis == 0 ? 0 : cond ((questionref(MyOneOf) >> 0x4 & 0xF00) == 0x0 + 0x2 ? 0 : 1)),
|
||||||
option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0x0, flags = 0;
|
option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0x0, flags = 0;
|
||||||
option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 0x1, flags = DEFAULT;
|
option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 0x1, flags = 0;
|
||||||
endoneof;
|
endoneof;
|
||||||
|
|
||||||
grayoutif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x1;
|
grayoutif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x1;
|
||||||
@ -313,9 +313,10 @@ formset
|
|||||||
endnumeric;
|
endnumeric;
|
||||||
|
|
||||||
numeric varid = MyEfiVar, // Reference of EFI variable storage
|
numeric varid = MyEfiVar, // Reference of EFI variable storage
|
||||||
|
questionid = 0x1111,
|
||||||
prompt = STRING_TOKEN(STR_TALL_HEX_PROMPT),
|
prompt = STRING_TOKEN(STR_TALL_HEX_PROMPT),
|
||||||
help = STRING_TOKEN(STR_NUMERIC_HELP1),
|
help = STRING_TOKEN(STR_NUMERIC_HELP1),
|
||||||
flags = DISPLAY_UINT_HEX, // Display in HEX format (if not specified, default is in decimal format)
|
flags = DISPLAY_UINT_HEX | INTERACTIVE, // Display in HEX format (if not specified, default is in decimal format)
|
||||||
minimum = 0,
|
minimum = 0,
|
||||||
maximum = 250,
|
maximum = 250,
|
||||||
default = 175,
|
default = 175,
|
||||||
|
Reference in New Issue
Block a user