 +-  } else {
 +-    AssertionType = EFI_TEST_ASSERTION_FAILED;
 +-  }
-+-
++ 
 +-  Status = gtRT->SetVariable (
 +-                     L"ExitBootServicesTestVariable",                                                           // VariableName
 +-                     &gTestVendor1Guid,                                                                         // VendorGuid

++  gEfiTestRecoveryLibraryGuid
+   gBlackBoxEfiHIIPackageListProtocolGuid
+diff --git a/SctPkg/TestCase/UEFI/EFI/BootServices/ImageServices/BlackBoxTest/ImageBBTestConformance.c b/SctPkg/TestCase/UEFI/EFI/BootServices/ImageServices/BlackBoxTest/ImageBBTestConformance.c
+index 4c63a08..6bd92ec 100644
+--- a/SctPkg/TestCase/UEFI/EFI/BootServices/ImageServices/BlackBoxTest/ImageBBTestConformance.c
++++ b/SctPkg/TestCase/UEFI/EFI/BootServices/ImageServices/BlackBoxTest/ImageBBTestConformance.c
+@@ -809,6 +809,7 @@ BBTestExitBootServicesConsistencyTest (

+-                 &DataSize,                                   // DataSize
+-                 &ReturnStatus                                // Data
+-                 );
++  RecoveryDataSize = sizeof(RecoveryData);
++  Status = RecoveryLib->ReadResetRecord(RecoveryLib, &RecoveryDataSize, &RecoveryData);
+ 
+-  if (Status == EFI_SUCCESS) {
+-    goto CheckResult;
++  if (!EFI_ERROR(Status) && RecoveryData == 1) {
++      goto CheckResult;
+   }
+ 
+   //
+-  // Print out some information to avoid the user thought it is an error
+-  //
+-  SctPrint (L"System will cold reset after 2 second. please run this test again...");
+-  gtBS->Stall (2000000);
+-
+-  //
+   // Checkpoint 1:
+   // 3.5.2.1  ExitBootServices should not succeed with an invalid MapKey
+   //
+@@ -892,26 +895,26 @@ BBTestExitBootServicesConsistencyTest (
+                    );
+     return Status;
+   }
+-
+   MapKey += MapKey;
+ 
++  RecoveryData = 1;
++  RecoveryLib->WriteResetRecord (RecoveryLib, sizeof(RecoveryData), &RecoveryData);
++
++  SctPrint (L"System will cold reset after 1 second. please run this test again...");

++  gtBS->Stall (1000000);

++
+   ReturnStatus = gtBS->ExitBootServices (
+                          mImageHandle,
+                          MapKey
+                          );
