The internal `variable store' protocol is used to provide storage for variables that can be accessed through the runtime services. The protocol exposes characteristics of the store along with a set of functions used to read, clear and update the contents of the store. The store is divided into a number of banks, where each bank can be read and updated individually.
The interface provided by the `variable store' protocol has the following functions and variables:
Revision of the interface, should be
EFI_VARIABLE_STORE_PROTOCOL_REVISION
.
Attributes of the store. See related defintions below for a list of available attributes.
Read the content of bank bank into buffer buffer. The buffer must at least be able to hold the amount of data that the store defines for a bank.
Update the content of bank bank with the data in buffer buffer. The buffer msut at least hold the amount of data that the store defined for a bank.
Reset content of bank bank.
#define EFI_VARIABLE_STORE_GUID (efi_guid_t) \ { 0xdfc23a79, 0xd3f9, 0x4a0e, \ { 0xac, 0xcb, 0x7f, 0x11, 0xf1, 0x53, 0xf2, 0xa7 } \ }
The protocol interface contains an attributes variable that defines under what situations the store can be used;
EFI_VARIABLE_STORE_NONVOLATILE
EFI_VARIABLE_STORE_BOOT_SERVICE
EFI_VARIABLE_STORE_RUNTIME
The protocol interface contains a revision member that defines the version of the interface. All future versions of the interface will be compatible. If non-compatible changes have to be introduced, a new guid will be allocated for the protocol.
EFI_VARIABLE_STORE_PROTOCOL_REVISION