**/\r
\r
#include "HddPasswordDxe.h"\r
+#include <Library/VariablePolicyHelperLib.h>\r
\r
EFI_GUID mHddPasswordVendorGuid = HDD_PASSWORD_CONFIG_GUID;\r
CHAR16 mHddPasswordVendorStorageName[] = L"HDD_PASSWORD_CONFIG";\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
- HDD_PASSWORD_DXE_PRIVATE_DATA *Private;\r
- VOID *Registration;\r
- EFI_EVENT EndOfDxeEvent;\r
- EDKII_VARIABLE_LOCK_PROTOCOL *VariableLock;\r
+ EFI_STATUS Status;\r
+ HDD_PASSWORD_DXE_PRIVATE_DATA *Private;\r
+ VOID *Registration;\r
+ EFI_EVENT EndOfDxeEvent;\r
+ EDKII_VARIABLE_POLICY_PROTOCOL *VariablePolicy;\r
\r
Private = NULL;\r
\r
//\r
// Make HDD_PASSWORD_VARIABLE_NAME variable read-only.\r
//\r
- Status = gBS->LocateProtocol (&gEdkiiVariableLockProtocolGuid, NULL, (VOID **)&VariableLock);\r
+ Status = gBS->LocateProtocol (&gEdkiiVariablePolicyProtocolGuid, NULL, (VOID **)&VariablePolicy);\r
if (!EFI_ERROR (Status)) {\r
- Status = VariableLock->RequestToLock (\r
- VariableLock,\r
- HDD_PASSWORD_VARIABLE_NAME,\r
- &mHddPasswordVendorGuid\r
- );\r
+ Status = RegisterBasicVariablePolicy (\r
+ VariablePolicy,\r
+ &mHddPasswordVendorGuid,\r
+ HDD_PASSWORD_VARIABLE_NAME,\r
+ VARIABLE_POLICY_NO_MIN_SIZE,\r
+ VARIABLE_POLICY_NO_MAX_SIZE,\r
+ VARIABLE_POLICY_NO_MUST_ATTR,\r
+ VARIABLE_POLICY_NO_CANT_ATTR,\r
+ VARIABLE_POLICY_TYPE_LOCK_NOW\r
+ );\r
DEBUG ((DEBUG_INFO, "%a(): Lock %s variable (%r)\n", __func__, HDD_PASSWORD_VARIABLE_NAME, Status));\r
ASSERT_EFI_ERROR (Status);\r
}\r
PrintLib\r
UefiLib\r
LockBoxLib\r
+ VariablePolicyHelperLib\r
S3BootScriptLib\r
PciLib\r
BaseCryptLib\r
gEfiHiiConfigAccessProtocolGuid ## PRODUCES\r
gEfiAtaPassThruProtocolGuid ## CONSUMES\r
gEfiPciIoProtocolGuid ## CONSUMES\r
- gEdkiiVariableLockProtocolGuid ## CONSUMES\r
+ gEdkiiVariablePolicyProtocolGuid ## CONSUMES\r
\r
[Pcd]\r
gEfiSecurityPkgTokenSpaceGuid.PcdSkipHddPasswordPrompt ## CONSUMES\r
PlatformPKProtectionLib|SecurityPkg/Library/PlatformPKProtectionLibVarPolicy/PlatformPKProtectionLibVarPolicy.inf\r
SecureBootVariableProvisionLib|SecurityPkg/Library/SecureBootVariableProvisionLib/SecureBootVariableProvisionLib.inf\r
TdxLib|MdePkg/Library/TdxLib/TdxLib.inf\r
+ VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf\r
\r
[LibraryClasses.ARM, LibraryClasses.AARCH64]\r
#\r