FORM_DISPLAY_ENGINE_FORM gDisplayFormData;\r
BOOLEAN mFinishRetrieveCall = FALSE;\r
\r
+/**\r
+ Check whether the ConfigAccess protocol is available\r
+\r
+ @parm FormSet FormSet of which the ConfigAcces protocol need to be checked.\r
+\r
+ @retval EFI_SUCCESS The function executed successfully.\r
+\r
+**/\r
+EFI_STATUS\r
+CheckConfigAccess(\r
+ IN FORM_BROWSER_FORMSET *FormSet\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+\r
+ Status = gBS->HandleProtocol (\r
+ FormSet->DriverHandle,\r
+ &gEfiHiiConfigAccessProtocolGuid,\r
+ (VOID **) &FormSet->ConfigAccess\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ //\r
+ // Configuration Driver don't attach ConfigAccess protocol to its HII package\r
+ // list, then there will be no configuration action required.\r
+ // Or the ConfigAccess protocol has been uninstalled.\r
+ //\r
+ FormSet->ConfigAccess = NULL;\r
+ }\r
+\r
+ return EFI_SUCCESS;\r
+}\r
+\r
/**\r
Evaluate all expressions in a Form.\r
\r
return Status;\r
}\r
\r
+ CheckConfigAccess(gCurrentSelection->FormSet);\r
+\r
Status = ProcessUserInput (&UserInput);\r
FreeDisplayFormData();\r
return Status;\r