UEFI varstore in Browser

本文介绍了浏览器中的两种存储类型:BrowserStorage 和 FormsetStorage 的工作原理。BrowserStorage 是浏览器级别的存储,多个表单集可以共享同一存储;而 FormsetStorage 则是针对当前表单集的存储,它内部包含指向 BrowserStorage 的指针。文章详细阐述了这两种存储类型的创建、初始化及删除过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Now have two typestorage in browser:

1.BrowserStorage

1.Thistype maintain the storage used by browser level, more than one form sets mayshare the same storage.

 

2.FormsetStorage

1.Thistype maintain the storage used by current form set, it has a pointer membernest in it and pointer to the Browser Storage.

 

2.How to find abrowser storage?

1.Varstore

Basedon the input varstore name and guid, also need to know the device path for thisvarstore (Driver handle also ok, what about HiiHandle?)

 

2.EfiVarstore

Basedon the input varstore name and guid, can find the efi varstore.

 

3.Name/Valuevarstore

Basedon the input varstore name and guid, also need to know the device path for thisvarstore.

 

3.Global variableused:

1.gBrowserStorageList

1.Usedto record the browser_storage

 

4.The process forBrowser_storage and Formset_storage

1.Create

1.Whenparse ifr binary data, it will create storage for this form set.  It will first create Formset_storage.

1.Wheninitialize the Browser_storage member nest in Formset_storage, it will checkthe global list gBrowserStorageList,  Ifit not found it in the list, browser will create Browser_storage for thisstorage and insert it to gBrowserStorageList.

2.Itwill create the configrequest string for this storage, store it nest in theformset_storage.

 

2.Initialize

1.InInitializeCurrentSetting( ) -> LoadStorage() function, Storage Type is:

1.EFI_HII_VARSTORE_EFI_VARIABLE

1.Notget storage value for this type.

2.EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER

1.Ifthe ConfigRequest string  nest inbrowser_stroage is NULL, call GetVariable to get value for this storage.

2.Else,Update the ConfigRequest string saved in Browser_storage, add new elements notin Browser_storage but in Formset_storage.

3.EFI_HII_VARSTORE_BUFFER  / EFI_HII_VARSTORE_NAME_VALUE

1.Comparethe ConfigRequst element in Formset_storage and Browser_storage,, just getvalue for the elements in Formset_storage and not in Browser_storage.

2.Afterget value for these elements, add these ConfigRequest strings to theBrowser_storage.

 

3.Remove

1.Whenbrowser exit from one form set and this form set not has data changed, browserwill  remove this storage. It will removemake the  ReferenceCount inBrowser_storage  -1. Also it will removethe elements in ConfigRequest saved in Browser_storage, belong to this formset.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值