git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11318
6f19259b-4bc3-4df7-8a09-
765794883524
If one of them is not satisfied, FtwWrite may fail.\r
Usually, Spare area only takes one block. That's SpareAreaLength = BlockSize, NumberOfSpareBlock = 1.\r
\r
If one of them is not satisfied, FtwWrite may fail.\r
Usually, Spare area only takes one block. That's SpareAreaLength = BlockSize, NumberOfSpareBlock = 1.\r
\r
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
EFI_FTW_DEVICE *FtwDevice;\r
\r
//\r
EFI_FTW_DEVICE *FtwDevice;\r
\r
//\r
- // Just return to avoid install SMM FaultTolerantWriteProtocol again\r
- // if Fault Tolerant Write protocol had been installed.\r
+ // Just return to avoid installing FaultTolerantWriteProtocol again\r
+ // if Fault Tolerant Write protocol has been installed.\r
// \r
Status = gBS->LocateProtocol (\r
&gEfiFaultTolerantWriteProtocolGuid, \r
// \r
Status = gBS->LocateProtocol (\r
&gEfiFaultTolerantWriteProtocolGuid, \r
\r
Internal functions to operate Working Block Space.\r
\r
\r
Internal functions to operate Working Block Space.\r
\r
-Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
&FtwDevice->FtwLastWriteHeader\r
);\r
Header = FtwDevice->FtwLastWriteHeader;\r
&FtwDevice->FtwLastWriteHeader\r
);\r
Header = FtwDevice->FtwLastWriteHeader;\r
- if (!EFI_ERROR (Status) && (Header != NULL) && (Header->Complete != FTW_VALID_STATE)) {\r
+ if (!EFI_ERROR (Status) && (Header != NULL) && (Header->Complete != FTW_VALID_STATE) && (Header->HeaderAllocated == FTW_VALID_STATE)) {\r
CopyMem (\r
Ptr + sizeof (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER),\r
FtwDevice->FtwLastWriteHeader,\r
CopyMem (\r
Ptr + sizeof (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER),\r
FtwDevice->FtwLastWriteHeader,\r