- while (IsValidVariableHeader (Variable)) {\r
- NextVariable = GetNextVariablePtr (Variable);\r
- if ((Variable->State == VAR_ADDED || Variable->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) &&\r
- Variable != UpdatingVariable &&\r
- Variable != UpdatingInDeletedTransition\r
- ) {\r
- VariableSize = (UINTN) NextVariable - (UINTN) Variable;\r
- MaximumBufferSize += VariableSize;\r
+ if (IsVolatile) {\r
+ //\r
+ // Start Pointers for the variable.\r
+ //\r
+ Variable = GetStartPointer (VariableStoreHeader);\r
+ MaximumBufferSize = sizeof (VARIABLE_STORE_HEADER);\r
+\r
+ while (IsValidVariableHeader (Variable)) {\r
+ NextVariable = GetNextVariablePtr (Variable);\r
+ if ((Variable->State == VAR_ADDED || Variable->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) &&\r
+ Variable != UpdatingVariable &&\r
+ Variable != UpdatingInDeletedTransition\r
+ ) {\r
+ VariableSize = (UINTN) NextVariable - (UINTN) Variable;\r
+ MaximumBufferSize += VariableSize;\r
+ }\r
+\r
+ Variable = NextVariable;\r