-extern VARIABLE_STORE_HEADER *mNvVariableCache;\r
-extern VARIABLE_INFO_ENTRY *gVariableInfo;\r
-EFI_HANDLE mHandle = NULL;\r
-EFI_EVENT mVirtualAddressChangeEvent = NULL;\r
-EFI_EVENT mFtwRegistration = NULL;\r
-extern LIST_ENTRY mLockedVariableList;\r
-extern BOOLEAN mEndOfDxe;\r
-EDKII_VARIABLE_LOCK_PROTOCOL mVariableLock = { VariableLockRequestToLock };\r
+extern VARIABLE_STORE_HEADER *mNvVariableCache;\r
+extern EFI_FIRMWARE_VOLUME_HEADER *mNvFvHeaderCache;\r
+extern VARIABLE_INFO_ENTRY *gVariableInfo;\r
+EFI_HANDLE mHandle = NULL;\r
+EFI_EVENT mVirtualAddressChangeEvent = NULL;\r
+EFI_EVENT mFtwRegistration = NULL;\r
+extern BOOLEAN mEndOfDxe;\r
+VOID ***mVarCheckAddressPointer = NULL;\r
+UINTN mVarCheckAddressPointerCount = 0;\r
+EDKII_VARIABLE_LOCK_PROTOCOL mVariableLock = { VariableLockRequestToLock };\r
+EDKII_VAR_CHECK_PROTOCOL mVarCheck = { VarCheckRegisterSetVariableCheckHandler,\r
+ VarCheckVariablePropertySet,\r
+ VarCheckVariablePropertyGet };\r
+\r
+/**\r
+ Some Secure Boot Policy Variable may update following other variable changes(SecureBoot follows PK change, etc).\r
+ Record their initial State when variable write service is ready.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+RecordSecureBootPolicyVarData(\r
+ VOID\r
+ );\r