+ } else if (Status == EFI_NOT_FOUND) {\r
+ //\r
+ // If variable does not exist, a new variable need to be created.\r
+ //\r
+ \r
+ Size = Offset + DataSize;\r
+ \r
+ Buffer = AllocateZeroPool (Size);\r
+ ASSERT (Buffer != NULL);\r
+ \r
+ CopyMem ((UINT8 *)Buffer + Offset, Data, DataSize);\r
+ \r
+ Status = gRT->SetVariable (\r
+ VariableName,\r
+ VariableGuid,\r
+ EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,\r
+ Size,\r
+ Buffer\r
+ );\r
+\r
+ FreePool (Buffer);\r
+ return Status; \r
+ }\r