From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.419.1652374488888536321 for ; Thu, 12 May 2022 09:54:49 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=WdsPYa/y; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: guo.dong@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652374489; x=1683910489; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=IZnT/ZXILlW6YGPVjX4SShygtTsGUD0C9TllV+upp0g=; b=WdsPYa/ysnAJ93yElG6by4sqPL3HvzN50ukYqSacCPwFQBC7V+r/4yxL wzogzYcrRuTqY5wpCaSl1fnxhwOnNe9exBwJw1lscB3733CwlBq2TLNQN g/8BM5Az4Dsc/C4rbgSaXvcQKrQOgbAGVJWmsFprGwHpQnDzbrzDpgFzj yuz3hhCmz/8ZU92VNv0+at5UM/CfE22StB4h17MeruzCCHoaYCbE3edAX DF1cvC8TpPc4xbHARUqOGmwUSdmCMVzX45e1p2envz+ViATVkGBIYv6Sq nq6Yzva5CWFb2Ye+VTrc8X0b0ULOTqUE/bSuasFO/uATnrHU5M2vnOmjd g==; X-IronPort-AV: E=McAfee;i="6400,9594,10345"; a="249960061" X-IronPort-AV: E=Sophos;i="5.91,220,1647327600"; d="scan'208";a="249960061" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 May 2022 09:45:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,220,1647327600"; d="scan'208";a="711992725" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga001.fm.intel.com with ESMTP; 12 May 2022 09:45:20 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 12 May 2022 09:45:19 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) 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.2308.27 via Frontend Transport; Thu, 12 May 2022 09:45:19 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.49) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Thu, 12 May 2022 09:45:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i7sBxFItpG8LQUUmu8tcWcnb2b/LcI4YBDHNp3MhmPzv9KHjlna55SHTWdeSRrqBPQvAxTshJ8y0O0hQ8/0gVTlpu+vZdDpnD8WdM30a84DdX77UefeUvjCzhjCy8J8Z70gJqQzXp6rJ/PMf78gNyfPYT5EAeFqcgXmMdxQ6tfpqdzfcKVWYSw3pqqle12LjN1+LnxmaGq7eiY/hmx6neyNqzFioKM3GRXAQaP5Qgh5y8SMdOulw7C5rfq07HDt6vkryg9FoI6oYWlHTPMD+5Y3yM7VZy8JBa23CgaBtHwpH9/qvURR0vML/yHSJwbFeuqc3SsKdPbt73yFDtecMHQ== 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=eXHO4HNOTWHNN5eyF59H+73Y9LRBO+sCoBEpEDmPrpU=; b=GL7yo1UlEfnhdScOXrdqtdJWVuqIMCC4dHw24GDsHHX3S8RymlmGs+eDimt/4y4UF94egvNBzVyxRv0CLv3Zh6oqsu7S48GCh7Ijswh8VUC1NruCzpTB63YvUsfzttZHIxXRfn5BdsyENFJTKVWod8si3pnZGboDAbZpHa77ZYdYameLbyXBr1qU+MR4+p9/P/skuP1YCazKQcmrPT3JT9e/im+OajHHkxPgOvWM1n7E4E8F3/HV80SVAG5ZekyKU4zt8yH+iS8QDt6CAPkPyaNqll9Ftl/+G03W19G1pKUD9txwTMuT8+qI5Bvr4WRhK+kVfM9Kde+ZHDY6+brWOQ== 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 BYAPR11MB3622.namprd11.prod.outlook.com (2603:10b6:a03:fe::30) by DM6PR11MB4516.namprd11.prod.outlook.com (2603:10b6:5:2a5::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Thu, 12 May 2022 16:45:17 +0000 Received: from BYAPR11MB3622.namprd11.prod.outlook.com ([fe80::cdf7:2641:1ae1:6197]) by BYAPR11MB3622.namprd11.prod.outlook.com ([fe80::cdf7:2641:1ae1:6197%7]) with mapi id 15.20.5227.023; Thu, 12 May 2022 16:45:16 +0000 From: "Guo Dong" To: "Liu, Zhiguang" , "devel@edk2.groups.io" CC: "Ni, Ray" , Maurice Ma , "You, Benjamin" , "Rhodes, Sean" Subject: Re: [PATCH v2 1/3] UefiPayloadPkg: Simplify code logic Thread-Topic: [PATCH v2 1/3] UefiPayloadPkg: Simplify code logic Thread-Index: AQHYZe7N8aldPgdXNkuW5Z2llu+vIq0bc2gg Date: Thu, 12 May 2022 16:45:16 +0000 Message-ID: References: <395134d6b7eae24441d404aa3e10ab391afcd049.1652351830.git.zhiguang.liu@intel.com> In-Reply-To: <395134d6b7eae24441d404aa3e10ab391afcd049.1652351830.git.zhiguang.liu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.401.20 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9ca292f3-c143-44b4-cb31-08da3436cb35 x-ms-traffictypediagnostic: DM6PR11MB4516:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hR2cjeTitlIwEm9kQNxcgjuPnIBlqi7Iai4Afz62czvzY+5u2Ds8LxtS66cMnPezXz1Y7KGLNP+YdCWTxpqFcx5s7RPOFL5Hz8NfrT2aXIgEqa9UHG3qvfc4hjnaMUfPwTxK7Q1TEIfbyxS45BU6PhY6wer2bTzpAjN7TICJZ+PKvXfmjK7+gl44qypQQ/TptyyhgGn3AsXfFQAuWYfRZrYzA0bFe8RTeTd5sDxSidDQtKorkC/putmp2gxdcI4/c7Kks7f2HShP5jtz+1CGJ9mNzCVhI1zGETlGTzakXEwAP+0GobpV1tNlZAk7wZUG7HSigf7kP11FMbupf0nro5mA+cmEdWOqTLygX2uWzh6zVODjZgXa1aQiU8CSusRFRHw0EwpnI46nILxcpeIVrU33dyqAzFzbsL+M+VwZKCV8sV7Cd1Ztg8Od3Vw5IppB8IPea+Mz2yL2/U8K6bNA1zZd+lLmL37lNjR95/oHhXr8KtqCgYHHe9LTxfKKf5/qFbgNXdkp2QVqWFX4Y7lbt9WbkpQW+++7g28O3Q/kwGDs8KhiE4cJi9l13DA7axs9nVjVQDq7lY471P6mpkbDOUxSR6jfMJZEjKTHtt3J/9Ua8bGig+Oxq/92Pp/DxQBINXRPVVWFc4VlDv0nves4YF9by/e8Mhyuxv99jDvLOM0vsaVSbKbqYw5+w2VklTqh1NPHYGJ2id8ruluDocss+w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR11MB3622.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(33656002)(6506007)(53546011)(9686003)(7696005)(55016003)(5660300002)(2906002)(8936002)(52536014)(508600001)(82960400001)(38070700005)(54906003)(86362001)(66476007)(64756008)(66946007)(76116006)(66446008)(66556008)(8676002)(4326008)(110136005)(316002)(83380400001)(122000001)(71200400001)(38100700002)(186003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 2 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?BsaNkB39U5/tH94MDJBtWxNB2hyacCo9ZG4W9hs0s563kUX/S2cOr8fYRkAY?= =?us-ascii?Q?3dPTKbXcJkbluCoHxAZOatAtaM13ygJHFIpaC1bv+E9b73dOJLC5FGOzrXe7?= =?us-ascii?Q?+GcV3NPKY8gd8GZ1Tp2r7Pyv3Pu07namYn0zsqRkGlPebWyVav3Kx+RE3b6A?= =?us-ascii?Q?OWwqB9+UyEUN13oQCpHaZWOodxiHv+ggT1tISBjNgaGtBtTT3BjhwoB4ua/h?= =?us-ascii?Q?aHKWAcF6pO0Fp4FZG71AVB+NXN1Lh1+M1eBuficKZA9gXSIYvhpqJVetFDxq?= =?us-ascii?Q?gdwy4elvVfNJ1/3RXnEhbpryackWTC26LcQ+vjzknbpOJit67HMofBxbBoNz?= =?us-ascii?Q?FTxZWYMDktZ2ngF4qFWiQR28Zdqg29053/QGKakUP3LRaaVtqUYRrmIUdrSI?= =?us-ascii?Q?DDdoMcinKo9pjA1GX4cyRYyNeO3koK1bRHsqzcVac+n0g2zeIM8fbExfb/7t?= =?us-ascii?Q?IOb5vcC5QgT9zop+YywNP/6dzOdDuFsH/kAmDdrPBRLu6tfE2Gw+MAucCLZH?= =?us-ascii?Q?0Rq8L/tiSd4MvS9w88PUNmOmU9YS1pmgBvXoqWwk5RVzMbBdQ7ZNNOrZZaeG?= =?us-ascii?Q?H0BJuv6FOpJuLSg2lP0Fu/glskSCaHvjHdxBA2+dt/Zs5m7ic76QowfDFkqs?= =?us-ascii?Q?s/K4j2URF808sGsgPmbJGM2Cf0JOwARywtRY0f1Ac9P64b1/zYy4EFnhCC4B?= =?us-ascii?Q?P6+QyItVsue+xnEw3ju1g7YjG/Fbd8jMWHPoEM9pwe2pV8qivP76hgQKDj+R?= =?us-ascii?Q?xiY7tIbZgqvskQ4RobJlNI0YJrGw9fplg8mOqYf/HjZrCFHC4SlIv0iUjdOf?= =?us-ascii?Q?CeMLuJCa6hAT1xdLLFhc4ZXOaabVUbN/TLbXOP0N09lsySPUsrjA9RPqhTOr?= =?us-ascii?Q?1QpfmZ9x6RQ/X0QelvadUErPrrh2t59V7fSLIgHRzbi+NBGnTx/ie7qDCG2e?= =?us-ascii?Q?o7iPL/PhRQpcVJtDZ4GakOZFFFyTHmFMlLK91av1yc9aTep2xmPTIa7PrEch?= =?us-ascii?Q?vGNhrtqSOK/FwJSxYPDnSmD4ZlfENueYoM8XpFI8ubeVo32hxOLCDOMAEfI/?= =?us-ascii?Q?tNg+Ydi7+94JIYLJ42I2jK+Zw/f8xg2YwrRe9Dp35UROU1QtUoexsIgrxY6A?= =?us-ascii?Q?3dWlcZkNVN/UfFSLavhIpxd8a/QXbVyHk4HrQVckHP/RpYml1jD0nhPjCozd?= =?us-ascii?Q?6lkN/D/G4VSaUaXg5aD2VpaTz2tSCcUurBtmDL2kzdY9AP5SxtzCoFLnMZJ1?= =?us-ascii?Q?wbT9kpa7SNIcTKORXeuveMAg3AFF9go5WP+HHbsNlZQ3CKfpAbFRe6+8zS0z?= =?us-ascii?Q?uMLCnRZnJyAxBRks3g2kQxFV2gqMVWj5EeYK8sk6XlvUGL+slxXTIthzYyKa?= =?us-ascii?Q?qkL0IucGo6ixoK0w0FW/i6x7RXpiU+Ye1qsQWNZVcVNmM8VJuwhNWUyAiHSn?= =?us-ascii?Q?UTUFffyKRK7vlgi74pymgCSqvntl05LHxIDKuF8qBb3yZCp3mIG4DCdLR4BU?= =?us-ascii?Q?K5GIWpZoFWxx8BXMfG0wYniAnkRgrLP3b1+7RG1dbjJ59cYDqkdroVDQpsD2?= =?us-ascii?Q?DXNfZt9YAamHsqieamaknsnHo6ABdUx5LanaCoec71ikoYEpk5Ur3tDI5lmb?= =?us-ascii?Q?ouL/+tGGOc6/RFGVFfERpPCKdBZg5P2HiARBBHv4eTt+LXUTaC5wsBpMU0Y/?= =?us-ascii?Q?CRpXItw76M8ZMvtw9T50JB8JfDYyuh2bGLj/7h9JEt/xOALXMuhAsAYN0Uet?= =?us-ascii?Q?Xcs3gydcCUDn2nBVcM6l9457Ftc/sTB1tOjbVNTH5aSHKvoRwpMTGyKp4bCJ?= x-ms-exchange-antispam-messagedata-1: kXiWCrBKREkuBA== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB3622.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ca292f3-c143-44b4-cb31-08da3436cb35 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 May 2022 16:45:16.8056 (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: OIWN3OekpUPK2IQT+Trf3zA5Z8QoW8tO8PsxB+XHp8CS5+SvLUbg9GK5TTyTihv0VW8U25nzyL/2cD6ylNqcGw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4516 Return-Path: guo.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Guo Dong -----Original Message----- From: Liu, Zhiguang =20 Sent: Thursday, May 12, 2022 3:55 AM To: devel@edk2.groups.io Cc: Dong, Guo ; Ni, Ray ; Maurice Ma = ; You, Benjamin ; Rhodes, Sea= n Subject: [PATCH v2 1/3] UefiPayloadPkg: Simplify code logic A little overdesign about VisitAllPciInstances function, since there are tw= o call back functions. Simplify the code logic by combining the two call ba= ck functions, and unused parameters. Change the PROTOCOL_INSTANCE_CALLBACK to SIMPLE_PROTOCOL_INSTANCE_CALLBACK = because the former is also defined in OvmfPkg. Rename it to avoid confusion= . Cc: Guo Dong Cc: Ray Ni Cc: Maurice Ma Cc: Benjamin You Cc: Sean Rhodes Signed-off-by: Zhiguang Liu --- .../PlatformBootManagerLib/PlatformConsole.c | 93 +++++-------------- ..= ./PlatformBootManagerLib/PlatformConsole.h | 5 +- 2 files changed, 25 insertions(+), 73 deletions(-) diff --git a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.= c b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.c index bfaf89e74c..75aafebccd 100644 --- a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.c +++ b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.c @@ -333,7 +333,6 @@ PreparePciSerialDevicePath ( @param[in] Id - The protocol GUID for callback @para= m[in] CallBackFunction - The callback function- @param[in] Context = - The context of the callback @retval EFI_STATUS - Callback function fai= led. @@ -341,9 +340,8 @@ PreparePciSerialDevicePath ( EFI_STATUS EFIAPI VisitAllInstancesOfProtocol (- IN EFI_GUID = *Id,- IN PROTOCOL_INSTANCE_CALLBACK CallBackFunction,- IN VOID = *Context+ IN EFI_GUID *Id,+= IN SIMPLE_PROTOCOL_INSTANCE_CALLBACK CallBackFunction ) { EFI_STATUS= Status;@@ -376,8 +374,7 @@ VisitAllInstancesOfProtocol ( Status =3D (*CallBackFunction)( HandleBuffer[Index],- Instance,- = Context+ Instance ); } @@ -387,21 +384,21 @@ VisitAllInstancesOfProtoc= ol ( } /**- For every PCI instance execute a callback function.+ Do platform= specific PCI Device check and add them to+ ConOut, ConIn, ErrOut. - @par= am[in] Handle - The PCI device handle- @param[in] Instance - The i= nstance of the PciIo protocol- @param[in] Context - The context of the= callback+ @param[in] Handle - Handle of PCI device instance+ @param[= in] Instance - The instance of PCI device - @retval EFI_STATUS - Callbac= k function failed.+ @retval EFI_SUCCESS - PCI Device check and Console var= iable update successfully.+ @retval EFI_STATUS - PCI Device check or Conso= le variable update fail. **/ EFI_STATUS EFIAPI-VisitingAPciInstance (+Dete= ctAndPreparePlatformPciDevicePath ( IN EFI_HANDLE Handle,- IN VOID = *Instance,- IN VOID *Context+ IN VOID *Instance ) { = EFI_STATUS Status;@@ -424,56 +421,6 @@ VisitingAPciInstance ( return Status; } - return (*(VISIT_PCI_INSTANCE_CALLBACK)(UINTN)Con= text)(- Handle,- PciIo,- &Pci- );-}--/**- For every PCI instance execu= te a callback function.-- @param[in] CallBackFunction - Callback function= pointer-- @retval EFI_STATUS - Callback function failed.--**/-EFI_STATUS-= EFIAPI-VisitAllPciInstances (- IN VISIT_PCI_INSTANCE_CALLBACK CallBackFun= ction- )-{- return VisitAllInstancesOfProtocol (- &gEfiPciIoPro= tocolGuid,- VisitingAPciInstance,- (VOID *)(UINTN)CallB= ackFunction- );-}--/**- Do platform specific PCI Device check an= d add them to- ConOut, ConIn, ErrOut.-- @param[in] Handle - Handle of PC= I device instance- @param[in] PciIo - PCI IO protocol instance- @param[i= n] Pci - PCI Header register block-- @retval EFI_SUCCESS - PCI Device che= ck and Console variable update successfully.- @retval EFI_STATUS - PCI Dev= ice check or Console variable update fail.--**/-EFI_STATUS-EFIAPI-DetectAnd= PreparePlatformPciDevicePath (- IN EFI_HANDLE Handle,- IN EFI_P= CI_IO_PROTOCOL *PciIo,- IN PCI_TYPE00 *Pci- )-{- EFI_STATUS = Status;- Status =3D PciIo->Attributes ( PciIo, = EfiPciIoAttributeOperationEnable,@@ -486,9 +433,9 @@ DetectAn= dPreparePlatformPciDevicePath ( // // Here we decide whether it is LPC Bridge //- if ((IS_P= CI_LPC (Pci)) ||- ((IS_PCI_ISA_PDECODE (Pci)) &&- (Pci->Hdr.= VendorId =3D=3D 0x8086)+ if ((IS_PCI_LPC (&Pci)) ||+ ((IS_PCI_ISA= _PDECODE (&Pci)) &&+ (Pci.Hdr.VendorId =3D=3D 0x8086) ) = ) {@@ -504,7 +451,7 @@ DetectAndPreparePlatformPciDevicePath ( // // Here we decide which Serial device to enable in PCI bus = //- if (IS_PCI_16550SERIAL (Pci)) {+ if (IS_PCI_16550SERIAL (&Pci)) {= // // Add them to ConOut, ConIn, ErrOut. //@@ -517,7 +46= 4,7 @@ DetectAndPreparePlatformPciDevicePath ( // // Enable all display devices //- if (IS_PCI_DISPLAY (Pci)) {+ = if (IS_PCI_DISPLAY (&Pci)) { // // Add them to ConOut. //@@ -54= 3,6 +490,8 @@ DetectAndPreparePlatformPciDevicePaths ( BOOLEAN DetectDisplayOnly ) {+ EFI_STATUS Status;+ mDetectDisplay= Only =3D DetectDisplayOnly; EfiBootManagerUpdateConsoleVariable (@@ -551= ,7 +500,11 @@ DetectAndPreparePlatformPciDevicePaths ( NULL ); - return VisitAllPciInstances (DetectAndPreparePlatformPc= iDevicePath);+ Status =3D VisitAllInstancesOfProtocol (+ &gEfi= PciIoProtocolGuid,+ DetectAndPreparePlatformPciDevicePath+ = );+ return Status; } /**diff --git a/UefiPayloadPkg/Library/Platf= ormBootManagerLib/PlatformConsole.h b/UefiPayloadPkg/Library/PlatformBootMa= nagerLib/PlatformConsole.h index a13f4b8b59..3713c21c45 100644 --- a/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.h +++ b/UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformConsole.h @@ -37,10 +37,9 @@ typedef struct { typedef EFI_STATUS-(EFIAPI *PROTOCOL_INSTANCE_CALLBACK)(+(EFIAPI *SIMPLE_= PROTOCOL_INSTANCE_CALLBACK)( IN EFI_HANDLE Handle,- IN VOID = *Instance,- IN VOID *Context+ IN VOID = *Instance ); /**--=20 2.32.0.windows.2