(VOID **)&SystemFmp\r
);\r
if (EFI_ERROR(Status)) {\r
- DEBUG((DEBUG_INFO, "(Agent)SetImage - SystemFmpProtocol - %r\n", Status));\r
- SystemFmpPrivate->LastAttempt.LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
- VarStatus = gRT->SetVariable(\r
- SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME,\r
- &gSystemFmpLastAttemptVariableGuid,\r
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
- sizeof(SystemFmpPrivate->LastAttempt),\r
- &SystemFmpPrivate->LastAttempt\r
- );\r
- DEBUG((DEBUG_INFO, "(Agent)SetLastAttemp - %r\n", VarStatus));\r
- return Status;\r
+ Status = gBS->LocateProtocol (\r
+ &gSystemFmpProtocolGuid,\r
+ NULL,\r
+ (VOID **)&SystemFmp\r
+ );\r
+ if (EFI_ERROR(Status)) {\r
+ DEBUG((DEBUG_INFO, "(Agent)SetImage - SystemFmpProtocol - %r\n", Status));\r
+ SystemFmpPrivate->LastAttempt.LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
+ VarStatus = gRT->SetVariable(\r
+ SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME,\r
+ &gSystemFmpLastAttemptVariableGuid,\r
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
+ sizeof(SystemFmpPrivate->LastAttempt),\r
+ &SystemFmpPrivate->LastAttempt\r
+ );\r
+ DEBUG((DEBUG_INFO, "(Agent)SetLastAttemp - %r\n", VarStatus));\r
+ return Status;\r
+ }\r
}\r
\r
return SystemFmp->SetImage(SystemFmp, ImageIndex, Image, ImageSize, VendorCode, Progress, AbortReason);\r