- Status = gRT->SetVariable (\r
- DriverString,\r
- &gEfiGlobalVariableGuid,\r
- VAR_FLAG,\r
- BufferSize,\r
- Buffer\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
- GetEfiGlobalVariable2 (L"DriverOrder", (VOID **) &DriverOrderList, &DriverOrderListSize);\r
- NewDriverOrderList = AllocateZeroPool (DriverOrderListSize + sizeof (UINT16));\r
- ASSERT (NewDriverOrderList != NULL);\r
- if (DriverOrderList != NULL){\r
- CopyMem (NewDriverOrderList, DriverOrderList, DriverOrderListSize);\r
- }\r
- NewDriverOrderList[DriverOrderListSize / sizeof (UINT16)] = Index;\r
- if (DriverOrderList != NULL) {\r
- EfiLibDeleteVariable (L"DriverOrder", &gEfiGlobalVariableGuid);\r
- }\r
-\r
- Status = gRT->SetVariable (\r
- L"DriverOrder",\r
- &gEfiGlobalVariableGuid,\r
- VAR_FLAG,\r
- DriverOrderListSize + sizeof (UINT16),\r
- NewDriverOrderList\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
- if (DriverOrderList != NULL) {\r
- FreePool (DriverOrderList);\r
- }\r
- DriverOrderList = NULL;\r
- FreePool (NewDriverOrderList);\r