+ UnicodeSPrint(Buffer, StrSize(Data), L"%s", Data);\r
+ ((CHAR16*)Buffer)[StrLen(Buffer)-1] = CHAR_NULL;\r
+\r
+ Status = gRT->SetVariable((CHAR16*)VariableName, &Guid, Attributes, StrSize(Buffer)-sizeof(CHAR16), Buffer);\r
+ if (EFI_ERROR(Status)) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SETVAR_ERROR_SET), gShellDebug1HiiHandle, &Guid, VariableName, Status);\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
+ } else {\r
+ ASSERT(ShellStatus == SHELL_SUCCESS);\r
+ }\r