+WIN_NT_SYSTEM_CONFIGURATION mSystemConfigData;\r
+\r
+VOID\r
+SetupVariableInit (\r
+ VOID\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+ UINTN Size;\r
+\r
+ Size = sizeof (mSystemConfigData);\r
+ Status = gRT->GetVariable (\r
+ L"Setup",\r
+ &gEfiWinNtSystemConfigGuid,\r
+ NULL,\r
+ &Size,\r
+ (VOID *) &mSystemConfigData\r
+ );\r
+\r
+ if (EFI_ERROR (Status)) {\r
+ //\r
+ // SetupVariable is corrupt\r
+ //\r
+ mSystemConfigData.ConOutRow = PcdGet32 (PcdConOutColumn);\r
+ mSystemConfigData.ConOutColumn = PcdGet32 (PcdConOutRow);\r
+\r
+ Status = gRT->SetVariable (\r
+ L"Setup",\r
+ &gEfiWinNtSystemConfigGuid,\r
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
+ sizeof (mSystemConfigData),\r
+ (VOID *) &mSystemConfigData\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "Failed to save Setup Variable to non-volatile storage, Status = %r\n", Status));\r
+ }\r
+ }\r
+}\r