 -                 &DataSize,                                   // DataSize
 -                 &ReturnStatus                                // Data
 -                 );
--
++  RecoveryDataSize = sizeof(RecoveryData);
++  Status = RecoveryLib->ReadResetRecord(RecoveryLib, &RecoveryDataSize, &RecoveryData);
+ 
 -  if (Status == EFI_SUCCESS) {
 -    goto CheckResult;
-+  if (!EFI_ERROR(Status) && RecoveryData[0] == 1) {
++  if (!EFI_ERROR(Status) && RecoveryData == 1) {
 +      goto CheckResult;
    }
  
    //
-@@ -899,19 +905,10 @@ BBTestExitBootServicesConsistencyTest (
+-  // 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
                           );

 typedef struct {
   VOID          *Registration;
diff --git a/SctPkg/TestCase/UEFI/EFI/BootServices/MemoryAllocationServices/BlackBoxTest/MemoryAllocationServicesBBTestConformance.c b/SctPkg/TestCase/UEFI/EFI/BootServices/MemoryAllocationServices/BlackBoxTest/MemoryAllocationServicesBBTestConformance.c
index 1a73c99..23ae7a1 100644
--- a/SctPkg/TestCase/UEFI/EFI/BootServices/MemoryAllocationServices/BlackBoxTest/MemoryAllocationServicesBBTestConformance.c
+++ b/SctPkg/TestCase/UEFI/EFI/BootServices/MemoryAllocationServices/BlackBoxTest/MemoryAllocationServicesBBTestConformance.c
@@ -1110,81 +1110,3 @@ BBTestAllocatePoolConsistencyTest (

+  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..e19c609 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 (
