From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web10.12714.1669099203272459061 for ; Mon, 21 Nov 2022 22:40:03 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=YCgDgZD1; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: jian.j.wang@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669099203; x=1700635203; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=C6F9A0yNH5552ffQeugsiZSYI3nuwNZqlJaRaQSITXQ=; b=YCgDgZD1evMHv7C5VvffY4Z97mef5IU0ExR+uGXbHB2I1mCAn0t7A4Lg 05praapWAnPgnHG4Vi12KEAUuOOE2fKnjzXFZwPqfDYS4jRt9+0KtmGPJ 9dwo34GyLMCZbfv2tbJXofY8KoN5oFJy8i4movmbt1p7F3Us8hcJFmXVh R+xq2paNw3VFpBwcFoVEunrcTQbSSb8QobECdVG6D9ETfmWx2RZ2e3Kyq NoKn2NvFR5QPuY0C7MPW6ECQSbSFWHq309qsCnkG92pGw6hRM3Yl/sMlH QS6l2sV2HK6vyw24lIRx3Pp18YEC2APJGKXCMlO+QiKA8HrgKNRQPtwvu A==; X-IronPort-AV: E=McAfee;i="6500,9779,10538"; a="375890711" X-IronPort-AV: E=Sophos;i="5.96,183,1665471600"; d="scan'208";a="375890711" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2022 22:40:03 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10538"; a="674250100" X-IronPort-AV: E=Sophos;i="5.96,183,1665471600"; d="scan'208";a="674250100" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga001.jf.intel.com with ESMTP; 21 Nov 2022 22:40:02 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Mon, 21 Nov 2022 22:40:01 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Mon, 21 Nov 2022 22:40:01 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Mon, 21 Nov 2022 22:40:01 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MPOgLu2do3qYZH0xOv6pzOTT19uT8S2q6nK+eEXhn6gue3b6DOluNZmfL097PUqpQdsTNden0z1ZL5/LRkN7V51ImBt97AwsJXpNjrg0lYpSaRf4XE5/pYzvgramro3WnWMx4kSKOPIihx9zCtNxdjYXQas/apJykLwXR/bNKDxy4lOS425qBObCNPKd62oeK+7E7O1Y1LGvgCpH4s8uvzwiL6ABGwK9IV+8agSVUgy4ThbpN4M4VJyPyknIMTxz1zDHZJBKxJAdMTCdbsG8tWpzR9+RVHGekCfAxkxwIjOCDxDn6a2s/Nk/GCHNZ+DHuJnlRus4UXzQL3O2C0Fd6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=o9YlayYsZ5x/Wl1z/SKQa8rwTua9J4aLiEbLQC+MvKA=; b=MxYmQE0QuSTDQ5PBktpEj/X35bLWMye0dTGlxe7BwZWK6v01T4LPSaWhMP9sgdXOT8HXApKFkfwiMr8RFJqYHL2DsQqbpdALVO2arbxOZSwy8eUSuo+l+d0v02JBd4HRjw1C5c0xPm+yJeDabvc1ldTRkuVfkXT3meaDaYjizM84AyVXkoqTvO4wbzrSfBNcYuj07Z1xV4COs/McUc0CtEmhleZvTum66Zg7VjJ/t3wmZr8zoUqKUQ2Scb4puLYVw1HTK9CJ3CndTiF26gKE9xEvblJVO8TMkbJjzYVR4f2qS2AIQeAhZ7seDoO+gO59XUVossbbhFRjoAb4Vnawww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW4PR11MB6763.namprd11.prod.outlook.com (2603:10b6:303:20b::7) by PH8PR11MB7119.namprd11.prod.outlook.com (2603:10b6:510:215::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.11; Tue, 22 Nov 2022 06:39:58 +0000 Received: from MW4PR11MB6763.namprd11.prod.outlook.com ([fe80::1440:650:6a28:88d9]) by MW4PR11MB6763.namprd11.prod.outlook.com ([fe80::1440:650:6a28:88d9%4]) with mapi id 15.20.5834.015; Tue, 22 Nov 2022 06:39:57 +0000 From: "Wang, Jian J" To: "Vang, Judah" , "devel@edk2.groups.io" CC: "Gao, Liming" , "Mistry, Nishant C" Subject: Re: [PATCH v5 06/19] MdeModulePkg: Add Null ProtectedVariable Library Thread-Topic: [PATCH v5 06/19] MdeModulePkg: Add Null ProtectedVariable Library Thread-Index: AQHY8bJbTdp2lu5gUkWDyLhMaFnGw65KlUlg Date: Tue, 22 Nov 2022 06:39:57 +0000 Message-ID: References: <20221106073509.3071-1-judah.vang@intel.com> <20221106073509.3071-7-judah.vang@intel.com> In-Reply-To: <20221106073509.3071-7-judah.vang@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR11MB6763:EE_|PH8PR11MB7119:EE_ x-ms-office365-filtering-correlation-id: dbf615d9-32f6-4b24-7cd1-08dacc545f8f x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: TsA4GMSix9WTVukK1rhx/GIj30D3vW1ow2sEHpvneq/SJxhcsmdZhFF7eIjiEFi7Ak8s7h4a2uVl3o3KEUnUI9KXiHeAbQPN6I8gfdy7RkWA0mk3DiozR1kGUL5Qb9N3xRLTbQzB+paKyq9H7wwAz8H8i6rmxXQ9ymudUB8b6q4QierQXjK+PJ8zgxHcYCj+TfRDxcAMW6mGA2WqkgMHprxFxjU3rODpdnmJRpEd0OlJMCuimYn2J3STl10eYNgd4tuSLCjfBOtO7ogy4eN5eM1o6WYf+Tnz9+IkW+YD0ngn5HlaMz9dfH4Cmaw8u4dVpbH47Cj5n9vO5S3Ilz03/DUMrZECyYkkqh/7Yn6+vWDbFpujo6Elj/qEZ3ufAxEoDveRe0LBuwYKzWOw87C/K9ZzShRrHrwJku9drgwTHuz8IfIjHxrJvpVsI7TRMgJo7Z8yQl6oJQoi9sRrlfH1gdQ24o/1LhrtDRGNbPnQjPBHqGfu++owZ42gbnEmTslL04rr6hu+NWHrbsk9tZvB2PxsQSqEWfBKy5lpQfmE7dxXOkdXoAqC87CvbGQNfSKyClayDzs4mB0FSSqsGQYkmV9xBJZ5DG6gKkb/VIosB/+Ia4DF4RcuMl/Gy09KVInMMck8Qo4U7Vbldqb0VNAq6f3sqfcrZfO2PMgjMdkhoTzuALMr4Lem6QS/kFXJs7rMqNR8GoOShWUGULWfzf8CVSn5tNJXgAwZBYpNtgJR2sc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB6763.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(346002)(366004)(136003)(376002)(396003)(39860400002)(451199015)(54906003)(26005)(107886003)(9686003)(7696005)(53546011)(2906002)(6506007)(316002)(110136005)(186003)(83380400001)(86362001)(4326008)(66446008)(71200400001)(8676002)(38100700002)(55016003)(66476007)(122000001)(66946007)(64756008)(82960400001)(8936002)(66556008)(30864003)(52536014)(5660300002)(966005)(41300700001)(76116006)(38070700005)(478600001)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?tLgjGOApLHFS8iKrZ6OGmJPQ7JYEBjkt7/QRXfNjxsxjI7bw2E3wuUeeCiwE?= =?us-ascii?Q?+BaqSlWCa7kIrvFjp59d/qf99546ZBfGHh08rFM+aR3LaemX3cO96S6pqUbl?= =?us-ascii?Q?nTTpqdrESve3NHMVEth+3VuPq3hXm9G/CdNtX9L2f1+EojtjRxl6xGZwB5fQ?= =?us-ascii?Q?bNGN0f2HbEtMzzTRG0Rtp2sz9s3oDPlZsWr2Y+4LkpxJLlzFYp4oZCuSzd/8?= =?us-ascii?Q?R+RPs2I4RWgb5HpdqzRY/eLH4JoPyFIzZbJnK5WA008KNEj9QXdppibzNLYA?= =?us-ascii?Q?SGh8zS3tCzzImqqhSRJX0hvaiKgEejBfQ9BTjLWpafjLszy3Nn5XqKhsnwjU?= =?us-ascii?Q?j7VHRF0kZg4/T4pttDahMPPhnBdxjK4zI1bHAiIu0wRLPfqwzAhqvi6pOGuY?= =?us-ascii?Q?aVBkq8jVyIky1XYKsXqR3MjrtZrcUFJc++EIpflQeZWpWIk1DyY3pUfiTYGz?= =?us-ascii?Q?gZVmJ5Moozs8nwjRN9pTR5byRDbQmBwHKjUknsBFG/lcqkKQpN+NZx3Dw4t6?= =?us-ascii?Q?IPA/GQcpv8OPzw1wypbII0+J2jYw43J1s16DsIpHYj6iCQmt9XZfUM5uebp1?= =?us-ascii?Q?L9xKoT7I6n/MlFVA6My2C9c8WN8XS9yaH3EiwJvggKMU2w226sQfSpf85PRb?= =?us-ascii?Q?q3wSInHpJ808AXcYRZBdcYAkOo7+Gmz8RxKj3jUHU+iBzYnj/qYJJViGNQeu?= =?us-ascii?Q?oseEBUp34VoQLECG7tABWQfVEBx4zPxaGPSq4eWbVs8HpxkAVENkhICSQWgW?= =?us-ascii?Q?MTeT+pj6xQ4g0sDUTCAG6uo+YP7zxM1WCaNe8y+UXiKvFNu3d250qxrKIDkh?= =?us-ascii?Q?pC/YP2GdAsDEaA4v1VqpKEhWI0p6MM51EWuEX4wDSeQnW3271U1Z2TRr/WgS?= =?us-ascii?Q?wmGZO9DuI1CKq35stNLS6gWdwBst/H45GfUtLXagSVvLEU4eTQyUqZdg56SA?= =?us-ascii?Q?2hoUglKpW7y7zdEt70kVqsL8J4acyZ13pKT1E93wibslDAYknzZlQbM3jymd?= =?us-ascii?Q?5BCvszOD8NCkLhOL3tVOnNi0G9g1mh+qDV7SEoiAeCohWlqO6EH7BW1+FHGt?= =?us-ascii?Q?b9O1ijMNztKuerdvztxtradODJ6CKfz/UbDz2rn2s8rWy5dhpQ8spyv7y5Rm?= =?us-ascii?Q?7ViK02ymtb9z5NmquWJVvy6/i+zR3i37q6IvTsY3j8YlOSkKi/HmVFvdbWUD?= =?us-ascii?Q?eWwCAETIzzx70YFYpzB1Po62eJ2toU1Y/WsCjkQcr9mddwGc7C142lGZq+g+?= =?us-ascii?Q?M65yvokfr7svto7p//PbRlTlfc1zw55bLtPs+SfRRCpquUQVauzCkc9uxOfs?= =?us-ascii?Q?ifsjcgvHMjf6S+PEfcQsvusNAjfNYFulT9Aoz+OT3e9gtNxmuf/JWBsb85lE?= =?us-ascii?Q?AQtHO0Lok2IbiY1N/3ldJBeVBBrctxgWc2FQPa+WFD3jX6PQG9y6eJ5GbxO1?= =?us-ascii?Q?NNTlnZzvR6ovzj+W1fosVp4Vrui2Iwzvg3gLSl+RvOzPGvy2bHdfuBEghTyc?= =?us-ascii?Q?Famn8h99/xOwycOJXikzCXiZE2ftmR132lC5pZHcGJSE/N+qEyxWXLO9uCJr?= =?us-ascii?Q?w+miALV6bY1/i6GYnUBO8o08FWRiqbCMkOZJMlz1?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB6763.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dbf615d9-32f6-4b24-7cd1-08dacc545f8f X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2022 06:39:57.8592 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4sTekSLZRW7bFM9myskG5ixqcmBFUqZqsTuYtKW5EgJrwfwrJ+jmtg0xRA+YSoe4nGeOqa8vgxWQT+QEhdTIIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB7119 Return-Path: jian.j.wang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Judah, Just some typos. See inline comments starting with "[JianJW]". With them addressed, Reviewed-by: Jian J Wang Regards, Jian > -----Original Message----- > From: Vang, Judah > Sent: Sunday, November 06, 2022 3:35 PM > To: devel@edk2.groups.io > Cc: Wang, Jian J ; Gao, Liming > ; Mistry, Nishant C > Subject: [PATCH v5 06/19] MdeModulePkg: Add Null ProtectedVariable Librar= y >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2594 >=20 > V4: Applied code review comments - removed APIs that are not being > used. >=20 > V1: Add Null versions of the ProtectedVariable Library. > This will be the default libraries for platforms that > do not support ProtectedVariable. >=20 > Cc: Jian J Wang > Cc: Liming Gao > Cc: Nishant C Mistry > Signed-off-by: Jian J Wang > Signed-off-by: Nishant C Mistry > Signed-off-by: Judah Vang > --- > MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariableLibNull.i= nf > | 34 ++ > MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariable.c = | > 336 ++++++++++++++++++++ > 2 files changed, 370 insertions(+) >=20 > diff --git > a/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariableLibNull.= in > f > b/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariableLibNull.= in > f > new file mode 100644 > index 000000000000..6a17191c4e1e > --- /dev/null > +++ > b/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariableLibNull.= in > f > @@ -0,0 +1,34 @@ > +## @file > +# Provides null version of protected variable services. > +# > +# Copyright (c) 2022, Intel Corporation. All rights reserved.
> +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > + INF_VERSION =3D 0x00010029 > + BASE_NAME =3D ProtectedVariableLibNull > + FILE_GUID =3D 352C6A1B-403A-4E37-8517-FAA50BC4525= 1 > + MODULE_TYPE =3D BASE > + VERSION_STRING =3D 0.1 > + LIBRARY_CLASS =3D ProtectedVariableLib > + > +# > +# The following information is for reference only and not required by th= e build > tools. > +# > +# VALID_ARCHITECTURES =3D IA32 X64 > +# > + > +[Sources] > + ProtectedVariable.c > + > +[Packages] > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + > +[LibraryClasses] > + BaseLib > + BaseMemoryLib > + DebugLib > + > diff --git > a/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariable.c > b/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariable.c > new file mode 100644 > index 000000000000..074559f84f52 > --- /dev/null > +++ b/MdeModulePkg/Library/ProtectedVariableLibNull/ProtectedVariable.c > @@ -0,0 +1,336 @@ > +/** @file > + NULL version of ProtectedVariableLib used to disable protected variabl= e > services. > + > +Copyright (c) 2022, Intel Corporation. All rights reserved.
> +SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include > +#include > + > +#include > +#include > +#include > + > +/** > + > + Initialization for protected varibale services. [JianJW] typo: " varibale" -> "variable" > + > + @param[in] ContextIn Pointer to variable service context needed by > + protected variable. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibInitialize ( > + IN PROTECTED_VARIABLE_CONTEXT_IN *ContextIn > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Prepare for variable update. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibWriteInit ( > + VOID > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Update a variable with protection provided by this library. > + > + @param[in,out] CurrVariable Variable to be updated. It's NULL = if > + adding a new variable. > + @param[in] CurrVariableInDel In-delete-transiion copy of updati= ng > variable. [JianJW] typo: " transiion" -> "transition" > + @param[in,out] NewVariable Buffer of new variable data. > + Buffer of "MetaDataHmacVar" and ne= w > + variable (encrypted). > + @param[in,out] NewVariableSize Size of NewVariable. > + Size of (encrypted) NewVariable an= d > + "MetaDataHmacVar". > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibUpdate ( > + IN OUT VARIABLE_HEADER *CurrVariable, > + IN VARIABLE_HEADER *CurrVariableInDel, > + IN OUT VARIABLE_HEADER *NewVariable, > + IN OUT UINTN *NewVariableSize > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Finalize a variable updating after it's written to NV variable storage > + successfully. > + > + @param[in] NewVariable Buffer of new variables and > MetaDataHmacVar. > + @param[in] VariableSize Size of buffer pointed by NewVariabl= e. > + @param[in] StoreIndex New index of the variable in store. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibWriteFinal ( > + IN VARIABLE_HEADER *NewVariable, > + IN UINTN VariableSize, > + IN UINT64 StoreIndex > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Retrieve plain data, if encrypted, of given variable. > + > + @param[in] Variable Pointer to header of a Variable. > + @param[in,out] Data Pointer to plain data of the given = variable. > + @param[in,out] DataSize Size of data returned or data buffe= r needed. > + @param[in] AuthFlag Auth-variable indicator. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetData ( > + IN VARIABLE_HEADER *Variable, > + IN OUT VOID *Data, > + IN OUT UINT32 *DataSize, > + IN BOOLEAN AuthFlag > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get the specified protected variable. > + > + @param[in] VariableName Pointer to variable name. > + @param[in] VariableGuid Pointer to vairable GUID. [JianJW] typo: " vairable" -> "variable" > + @param[out] Attributes Pointer to attributes. > + @param[in,out] DataSize Pointer to data size. > + @param[out] Data Pointer to data. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGet ( > + IN CONST CHAR16 *VariableName, > + IN CONST EFI_GUID *VariableGuid, > + OUT UINT32 *Attributes, > + IN OUT UINTN *DataSize, > + OUT VOID *Data OPTIONAL > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Find the protected variable. > + > + @param[in,out] VarInfo Pointer to structure containing variab= le > information. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibFind ( > + IN OUT PROTECTED_VARIABLE_INFO *VarInfo > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Find next protected variable. > + > + @param[in,out] VariableNameSize Pointer to size of variable na= me. > + @param[in,out] VariableName Pointer to variable name. > + @param[in,out] VariableGuid Pointer to vairable GUID. [JianJW] typo: " vairable" -> "variable" > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibFindNext ( > + IN OUT UINTN *VariableNameSize, > + IN OUT CHAR16 *VariableName, > + IN OUT EFI_GUID *VariableGuid > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Find next protected variable stub. > + > + @param[in,out] VarInfo Pointer to structure containing variab= le > information. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibFindNextEx ( > + IN OUT PROTECTED_VARIABLE_INFO *VarInfo > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get protected variable by information. > + > + @param[in,out] VarInfo Pointer to structure containing variab= le > information. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetByInfo ( > + IN OUT PROTECTED_VARIABLE_INFO *VarInfo > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get protected variable by name. > + > + @param[in] VariableName Pointer to variable name. > + @param[in] VariableGuid Pointer to vairable GUID. [JianJW] typo: " vairable" -> "variable" > + @param[out] Attributes Pointer to attributes. > + @param[in,out] DataSize Pointer to data size. > + @param[out] Data Pointer to data. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetByName ( > + IN CONST CHAR16 *VariableName, > + IN CONST EFI_GUID *VariableGuid, > + OUT UINT32 *Attributes, > + IN OUT UINTN *DataSize, > + OUT VOID *Data OPTIONAL > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get protected variable by name. > + > + @param[in] Variable Pointer to variable name. > + @param[in,out] Data Pointer to variable data. > + @param[in,out] DataSize Pointer to data size. > + @param[in] AuthFlag Authenticate flag. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetByBuffer ( > + IN VARIABLE_HEADER *Variable, > + IN OUT VOID *Data, > + IN OUT UINT32 *DataSize, > + IN BOOLEAN AuthFlag > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + Refresh variable information changed by variable service. > + > + @param[in] Variable Pointer to buffer of the updated variable= . > + @param[in] VariableSize Size of variable pointed by Variable. > + @param[in] StoreIndex New index of the variable in store. > + @param[in] RefreshData Flag to indicate if the variable has been= updated. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibRefresh ( > + IN VARIABLE_HEADER *Variable, > + IN UINTN VariableSize, > + IN UINT64 StoreIndex, > + IN BOOLEAN RefreshData > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Get sorted protected variable list. > + > + @param[in,out] Buffer Pointer to buffer. > + @param[in,out] NumElements Pointer to number of elements. > + > + @retval EFI_UNSUPPORTED Unsupported to process protected var= iable. > + > +**/ > +EFI_STATUS > +EFIAPI > +ProtectedVariableLibGetSortedList ( > + IN OUT EFI_PHYSICAL_ADDRESS **Buffer, > + IN OUT UINTN *NumElements > + ) > +{ > + return EFI_UNSUPPORTED; > +} > + > +/** > + > + Determine if the variable is the HMAC variable. > + > + @param[in] VariableName Pointer to variable name. > + > + @return FALSE Variable is not HMAC variable > + > +**/ > +BOOLEAN > +ProtectedVariableLibIsHmac ( > + IN CHAR16 *VariableName > + ) > +{ > + return FALSE; > +} > -- > 2.35.1.windows.2