From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0A18D21CE73ED for ; Thu, 6 Jul 2017 19:22:54 -0700 (PDT) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP; 06 Jul 2017 19:24:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,320,1496127600"; d="scan'208";a="1148898997" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga001.jf.intel.com with ESMTP; 06 Jul 2017 19:24:34 -0700 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 6 Jul 2017 19:24:34 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx109.amr.corp.intel.com (10.18.116.9) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 6 Jul 2017 19:24:33 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.151]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.197]) with mapi id 14.03.0319.002; Fri, 7 Jul 2017 10:24:18 +0800 From: "Ni, Ruiyu" To: "Wu, Hao A" , "edk2-devel@lists.01.org" Thread-Topic: [PATCH 2/2] MdeModulePkg/PartitionDxe: Add impl of Partition Information Protocol Thread-Index: AQHS6zPZ7/6x7Mi8wU+sBtugju5i66JHualg Date: Fri, 7 Jul 2017 02:24:17 +0000 Deferred-Delivery: Fri, 7 Jul 2017 02:24:00 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5B9B1A11@SHSMSX104.ccr.corp.intel.com> References: <20170622084440.7696-1-hao.a.wu@intel.com> <20170622084440.7696-3-hao.a.wu@intel.com> In-Reply-To: <20170622084440.7696-3-hao.a.wu@intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 2/2] MdeModulePkg/PartitionDxe: Add impl of Partition Information Protocol X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Jul 2017 02:22:54 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Ruiyu Ni Thanks/Ray > -----Original Message----- > From: Wu, Hao A > Sent: Thursday, June 22, 2017 4:45 PM > To: edk2-devel@lists.01.org > Cc: Wu, Hao A ; Ni, Ruiyu ; Bret > Barkelew > Subject: [PATCH 2/2] MdeModulePkg/PartitionDxe: Add impl of Partition > Information Protocol >=20 > Cc: Ruiyu Ni > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Bret Barkelew > Signed-off-by: Hao Wu > --- > MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c | 43 ++++++++-= -- > ---- > MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c | 55 > ++++++++++++-------- > MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c | 51 > ++++++++++++------ > MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c | 23 ++++++-- > MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h | 48 +++++++++= - > ------- > MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf | 3 +- > 6 files changed, 135 insertions(+), 88 deletions(-) >=20 > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c > index 2af38429dd..2084ee5abe 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c > @@ -1,7 +1,7 @@ > /** @file > Decode an El Torito formatted CD-ROM >=20 > -Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
> +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials are licensed and made > available under the terms and conditions of the BSD License which > accompanies this distribution. The full text of the license may be found= at > @@ -44,22 +44,23 @@ PartitionInstallElToritoChildHandles ( > IN EFI_DEVICE_PATH_PROTOCOL *DevicePath > ) > { > - EFI_STATUS Status; > - UINT64 VolDescriptorOffset; > - UINT32 Lba2KB; > - EFI_BLOCK_IO_MEDIA *Media; > - CDROM_VOLUME_DESCRIPTOR *VolDescriptor; > - ELTORITO_CATALOG *Catalog; > - UINTN Check; > - UINTN Index; > - UINTN BootEntry; > - UINTN MaxIndex; > - UINT16 *CheckBuffer; > - CDROM_DEVICE_PATH CdDev; > - UINT32 SubBlockSize; > - UINT32 SectorCount; > - EFI_STATUS Found; > - UINT32 VolSpaceSize; > + EFI_STATUS Status; > + UINT64 VolDescriptorOffset; > + UINT32 Lba2KB; > + EFI_BLOCK_IO_MEDIA *Media; > + CDROM_VOLUME_DESCRIPTOR *VolDescriptor; > + ELTORITO_CATALOG *Catalog; > + UINTN Check; > + UINTN Index; > + UINTN BootEntry; > + UINTN MaxIndex; > + UINT16 *CheckBuffer; > + CDROM_DEVICE_PATH CdDev; > + UINT32 SubBlockSize; > + UINT32 SectorCount; > + EFI_STATUS Found; > + UINT32 VolSpaceSize; > + EFI_PARTITION_INFO_PROTOCOL PartitionInfo; >=20 > Found =3D EFI_NOT_FOUND; > Media =3D BlockIo->Media; > @@ -248,6 +249,10 @@ PartitionInstallElToritoChildHandles ( > ); > } >=20 > + ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL)); > + PartitionInfo.Revision =3D EFI_PARTITION_INFO_PROTOCOL_REVISION; > + PartitionInfo.Type =3D PARTITION_TYPE_OTHER; > + > Status =3D PartitionInstallChildHandle ( > This, > Handle, > @@ -257,10 +262,10 @@ PartitionInstallElToritoChildHandles ( > BlockIo2, > DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *) &CdDev, > + &PartitionInfo, > Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize), > Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize) + > CdDev.PartitionSize - 1, > - SubBlockSize, > - FALSE > + SubBlockSize > ); > if (!EFI_ERROR (Status)) { > Found =3D EFI_SUCCESS; > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c > index 35860515c1..2cd3e15e8a 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c > @@ -13,7 +13,7 @@ > PartitionValidGptTable(), PartitionCheckGptEntry() routine will accept= disk > partition content and validate the GPT table and GPT entry. >=20 > -Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
> +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials are licensed and made > available under the terms and conditions of the BSD License which > accompanies this distribution. The full text of the license may be found= at > @@ -205,19 +205,20 @@ PartitionInstallGptChildHandles ( > IN EFI_DEVICE_PATH_PROTOCOL *DevicePath > ) > { > - EFI_STATUS Status; > - UINT32 BlockSize; > - EFI_LBA LastBlock; > - MASTER_BOOT_RECORD *ProtectiveMbr; > - EFI_PARTITION_TABLE_HEADER *PrimaryHeader; > - EFI_PARTITION_TABLE_HEADER *BackupHeader; > - EFI_PARTITION_ENTRY *PartEntry; > - EFI_PARTITION_ENTRY *Entry; > - EFI_PARTITION_ENTRY_STATUS *PEntryStatus; > - UINTN Index; > - EFI_STATUS GptValidStatus; > - HARDDRIVE_DEVICE_PATH HdDev; > - UINT32 MediaId; > + EFI_STATUS Status; > + UINT32 BlockSize; > + EFI_LBA LastBlock; > + MASTER_BOOT_RECORD *ProtectiveMbr; > + EFI_PARTITION_TABLE_HEADER *PrimaryHeader; > + EFI_PARTITION_TABLE_HEADER *BackupHeader; > + EFI_PARTITION_ENTRY *PartEntry; > + EFI_PARTITION_ENTRY *Entry; > + EFI_PARTITION_ENTRY_STATUS *PEntryStatus; > + UINTN Index; > + EFI_STATUS GptValidStatus; > + HARDDRIVE_DEVICE_PATH HdDev; > + UINT32 MediaId; > + EFI_PARTITION_INFO_PROTOCOL PartitionInfo; >=20 > ProtectiveMbr =3D NULL; > PrimaryHeader =3D NULL; > @@ -380,17 +381,25 @@ PartitionInstallGptChildHandles ( > } >=20 > ZeroMem (&HdDev, sizeof (HdDev)); > - HdDev.Header.Type =3D MEDIA_DEVICE_PATH; > - HdDev.Header.SubType =3D MEDIA_HARDDRIVE_DP; > + HdDev.Header.Type =3D MEDIA_DEVICE_PATH; > + HdDev.Header.SubType =3D MEDIA_HARDDRIVE_DP; > SetDevicePathNodeLength (&HdDev.Header, sizeof (HdDev)); >=20 > - HdDev.PartitionNumber =3D (UINT32) Index + 1; > - HdDev.MBRType =3D MBR_TYPE_EFI_PARTITION_TABLE_HEADER; > - HdDev.SignatureType =3D SIGNATURE_TYPE_GUID; > - HdDev.PartitionStart =3D Entry->StartingLBA; > - HdDev.PartitionSize =3D Entry->EndingLBA - Entry->StartingLBA + 1; > + HdDev.PartitionNumber =3D (UINT32) Index + 1; > + HdDev.MBRType =3D MBR_TYPE_EFI_PARTITION_TABLE_HEADER; > + HdDev.SignatureType =3D SIGNATURE_TYPE_GUID; > + HdDev.PartitionStart =3D Entry->StartingLBA; > + HdDev.PartitionSize =3D Entry->EndingLBA - Entry->StartingLBA + 1= ; > CopyMem (HdDev.Signature, &Entry->UniquePartitionGUID, sizeof > (EFI_GUID)); >=20 > + ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL)); > + PartitionInfo.Revision =3D EFI_PARTITION_INFO_PROTOCOL_REVISION; > + PartitionInfo.Type =3D PARTITION_TYPE_GPT; > + if (CompareGuid (&Entry->PartitionTypeGUID, > &gEfiPartTypeSystemPartGuid)) { > + PartitionInfo.System =3D 1; > + } > + CopyMem (&PartitionInfo.Info.Gpt, Entry, sizeof > + (EFI_PARTITION_ENTRY)); > + > DEBUG ((EFI_D_INFO, " Index : %d\n", (UINT32) Index)); > DEBUG ((EFI_D_INFO, " Start LBA : %lx\n", (UINT64) HdDev.PartitionSt= art)); > DEBUG ((EFI_D_INFO, " End LBA : %lx\n", (UINT64) Entry->EndingLBA)); > @@ -407,10 +416,10 @@ PartitionInstallGptChildHandles ( > BlockIo2, > DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *) &HdDev, > + &PartitionInfo, > Entry->StartingLBA, > Entry->EndingLBA, > - BlockSize, > - CompareGuid(&Entry->PartitionTypeGUID, > &gEfiPartTypeSystemPartGuid) > + BlockSize > ); > } >=20 > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c > index 377fb19319..55e9d26bae 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c > @@ -12,7 +12,7 @@ > the legacy boot strap code. >=20 > Copyright (c) 2014, Hewlett-Packard Development Company, L.P.
- > Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
> +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials are licensed and made > available under the terms and conditions of the BSD License which > accompanies this distribution. The full text of the license may be found= at > @@ -129,18 +129,19 @@ PartitionInstallMbrChildHandles ( > IN EFI_DEVICE_PATH_PROTOCOL *DevicePath > ) > { > - EFI_STATUS Status; > - MASTER_BOOT_RECORD *Mbr; > - UINT32 ExtMbrStartingLba; > - UINT32 Index; > - HARDDRIVE_DEVICE_PATH HdDev; > - HARDDRIVE_DEVICE_PATH ParentHdDev; > - EFI_STATUS Found; > - EFI_DEVICE_PATH_PROTOCOL *DevicePathNode; > - EFI_DEVICE_PATH_PROTOCOL *LastDevicePathNode; > - UINT32 BlockSize; > - UINT32 MediaId; > - EFI_LBA LastBlock; > + EFI_STATUS Status; > + MASTER_BOOT_RECORD *Mbr; > + UINT32 ExtMbrStartingLba; > + UINT32 Index; > + HARDDRIVE_DEVICE_PATH HdDev; > + HARDDRIVE_DEVICE_PATH ParentHdDev; > + EFI_STATUS Found; > + EFI_DEVICE_PATH_PROTOCOL *DevicePathNode; > + EFI_DEVICE_PATH_PROTOCOL *LastDevicePathNode; > + UINT32 BlockSize; > + UINT32 MediaId; > + EFI_LBA LastBlock; > + EFI_PARTITION_INFO_PROTOCOL PartitionInfo; >=20 > Found =3D EFI_NOT_FOUND; >=20 > @@ -225,6 +226,14 @@ PartitionInstallMbrChildHandles ( > HdDev.PartitionSize =3D UNPACK_UINT32 (Mbr- > >Partition[Index].SizeInLBA); > CopyMem (HdDev.Signature, &(Mbr->UniqueMbrSignature[0]), sizeof > (Mbr->UniqueMbrSignature)); >=20 > + ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL)); > + PartitionInfo.Revision =3D EFI_PARTITION_INFO_PROTOCOL_REVISION; > + PartitionInfo.Type =3D PARTITION_TYPE_MBR; > + if (Mbr->Partition[Index].OSIndicator =3D=3D EFI_PARTITION) { > + PartitionInfo.System =3D 1; > + } > + CopyMem (&PartitionInfo.Info.Mbr, &Mbr->Partition[Index], sizeof > + (MBR_PARTITION_RECORD)); > + > Status =3D PartitionInstallChildHandle ( > This, > Handle, > @@ -234,10 +243,10 @@ PartitionInstallMbrChildHandles ( > BlockIo2, > DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *) &HdDev, > + &PartitionInfo, > HdDev.PartitionStart, > HdDev.PartitionStart + HdDev.PartitionSize - 1, > - MBR_SIZE, > - (BOOLEAN) (Mbr->Partition[Index].OSIndicator =3D=3D EFI_= PARTITION) > + MBR_SIZE > ); >=20 > if (!EFI_ERROR (Status)) { > @@ -288,6 +297,14 @@ PartitionInstallMbrChildHandles ( > // > *((UINT32 *) &HdDev.Signature[0]) =3D 0; >=20 > + ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL)); > + PartitionInfo.Revision =3D EFI_PARTITION_INFO_PROTOCOL_REVISION; > + PartitionInfo.Type =3D PARTITION_TYPE_MBR; > + if (Mbr->Partition[0].OSIndicator =3D=3D EFI_PARTITION) { > + PartitionInfo.System =3D 1; > + } > + CopyMem (&PartitionInfo.Info.Mbr, &Mbr->Partition[0], sizeof > + (MBR_PARTITION_RECORD)); > + > Status =3D PartitionInstallChildHandle ( > This, > Handle, > @@ -297,10 +314,10 @@ PartitionInstallMbrChildHandles ( > BlockIo2, > DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *) &HdDev, > + &PartitionInfo, > HdDev.PartitionStart - ParentHdDev.PartitionStart, > HdDev.PartitionStart - ParentHdDev.PartitionStart + > HdDev.PartitionSize - 1, > - MBR_SIZE, > - (BOOLEAN) (Mbr->Partition[0].OSIndicator =3D=3D EFI_PAR= TITION) > + MBR_SIZE > ); > if (!EFI_ERROR (Status)) { > Found =3D EFI_SUCCESS; > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > index 1c53bf0233..5a7d119b43 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > @@ -4,7 +4,7 @@ > of the raw block devices media. Currently "El Torito CD-ROM", Legacy > MBR, and GPT partition schemes are supported. >=20 > -Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
> +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials are licensed and made > available under the terms and conditions of the BSD License which > accompanies this distribution. The full text of the license may be found= at > @@ -514,6 +514,8 @@ PartitionDriverBindingStop ( > &Private->BlockIo, > &gEfiBlockIo2ProtocolGuid, > &Private->BlockIo2, > + &gEfiPartitionInfoProtocolGuid, > + &Private->PartitionInfo, > Private->EspGuid, > NULL, > NULL > @@ -526,6 +528,8 @@ PartitionDriverBindingStop ( > Private->DevicePath, > &gEfiBlockIoProtocolGuid, > &Private->BlockIo, > + &gEfiPartitionInfoProtocolGuid, > + &Private->PartitionInfo, > Private->EspGuid, > NULL, > NULL > @@ -1092,10 +1096,10 @@ PartitionFlushBlocksEx ( > @param[in] ParentBlockIo2 Parent BlockIo2 interface. > @param[in] ParentDevicePath Parent Device Path. > @param[in] DevicePathNode Child Device Path node. > + @param[in] PartitionInfo Child Partition Information interface. > @param[in] Start Start Block. > @param[in] End End Block. > @param[in] BlockSize Child block size. > - @param[in] InstallEspGuid Flag to install EFI System Partition GUI= D on > handle. >=20 > @retval EFI_SUCCESS A child handle was added. > @retval other A child handle was not added. > @@ -1111,10 +1115,10 @@ PartitionInstallChildHandle ( > IN EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2, > IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath, > IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, > + IN EFI_PARTITION_INFO_PROTOCOL *PartitionInfo, > IN EFI_LBA Start, > IN EFI_LBA End, > - IN UINT32 BlockSize, > - IN BOOLEAN InstallEspGuid > + IN UINT32 BlockSize > ) > { > EFI_STATUS Status; > @@ -1203,7 +1207,12 @@ PartitionInstallChildHandle ( > return EFI_OUT_OF_RESOURCES; > } >=20 > - if (InstallEspGuid) { > + // > + // Set the PartitionInfo into Private Data. > + // > + CopyMem (&Private->PartitionInfo, PartitionInfo, sizeof > + (EFI_PARTITION_INFO_PROTOCOL)); > + > + if ((PartitionInfo->System =3D=3D 1)) { > Private->EspGuid =3D &gEfiPartTypeSystemPartGuid; > } else { > // > @@ -1225,6 +1234,8 @@ PartitionInstallChildHandle ( > &Private->BlockIo, > &gEfiBlockIo2ProtocolGuid, > &Private->BlockIo2, > + &gEfiPartitionInfoProtocolGuid, > + &Private->PartitionInfo, > Private->EspGuid, > NULL, > NULL > @@ -1236,6 +1247,8 @@ PartitionInstallChildHandle ( > Private->DevicePath, > &gEfiBlockIoProtocolGuid, > &Private->BlockIo, > + &gEfiPartitionInfoProtocolGuid, > + &Private->PartitionInfo, > Private->EspGuid, > NULL, > NULL > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h > b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h > index 7cb19882cb..f2f6185317 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h > @@ -4,7 +4,7 @@ > of the raw block devices media. Currently "El Torito CD-ROM", Legacy > MBR, and GPT partition schemes are supported. >=20 > -Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
> +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials are licensed and made > available under the terms and conditions of the BSD License which > accompanies this distribution. The full text of the license may be found= at > @@ -27,6 +27,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY > KIND, EITHER EXPRESS OR IMPLIED. > #include > #include > #include > +#include > #include > #include #include > @@ -45,25 +46,26 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF > ANY KIND, EITHER EXPRESS OR IMPLIED. > // > #define PARTITION_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('P', 'a', 'r', > 't') typedef struct { > - UINT64 Signature; > - > - EFI_HANDLE Handle; > - EFI_DEVICE_PATH_PROTOCOL *DevicePath; > - EFI_BLOCK_IO_PROTOCOL BlockIo; > - EFI_BLOCK_IO2_PROTOCOL BlockIo2; > - EFI_BLOCK_IO_MEDIA Media; > - EFI_BLOCK_IO_MEDIA Media2;//For BlockIO2 > - > - EFI_DISK_IO_PROTOCOL *DiskIo; > - EFI_DISK_IO2_PROTOCOL *DiskIo2; > - EFI_BLOCK_IO_PROTOCOL *ParentBlockIo; > - EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2; > - UINT64 Start; > - UINT64 End; > - UINT32 BlockSize; > - BOOLEAN InStop; > - > - EFI_GUID *EspGuid; > + UINT64 Signature; > + > + EFI_HANDLE Handle; > + EFI_DEVICE_PATH_PROTOCOL *DevicePath; > + EFI_BLOCK_IO_PROTOCOL BlockIo; > + EFI_BLOCK_IO2_PROTOCOL BlockIo2; > + EFI_BLOCK_IO_MEDIA Media; > + EFI_BLOCK_IO_MEDIA Media2;//For BlockIO2 > + EFI_PARTITION_INFO_PROTOCOL PartitionInfo; > + > + EFI_DISK_IO_PROTOCOL *DiskIo; > + EFI_DISK_IO2_PROTOCOL *DiskIo2; > + EFI_BLOCK_IO_PROTOCOL *ParentBlockIo; > + EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2; > + UINT64 Start; > + UINT64 End; > + UINT32 BlockSize; > + BOOLEAN InStop; > + > + EFI_GUID *EspGuid; >=20 > } PARTITION_PRIVATE_DATA; >=20 > @@ -321,10 +323,10 @@ PartitionComponentNameGetControllerName ( > @param[in] ParentBlockIo2 Parent BlockIo2 interface. > @param[in] ParentDevicePath Parent Device Path. > @param[in] DevicePathNode Child Device Path node. > + @param[in] PartitionInfo Child Partition Information interface. > @param[in] Start Start Block. > @param[in] End End Block. > @param[in] BlockSize Child block size. > - @param[in] InstallEspGuid Flag to install EFI System Partition GUI= D on > handle. >=20 > @retval EFI_SUCCESS A child handle was added. > @retval other A child handle was not added. > @@ -340,10 +342,10 @@ PartitionInstallChildHandle ( > IN EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2, > IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath, > IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, > + IN EFI_PARTITION_INFO_PROTOCOL *PartitionInfo, > IN EFI_LBA Start, > IN EFI_LBA End, > - IN UINT32 BlockSize, > - IN BOOLEAN InstallEspGuid > + IN UINT32 BlockSize > ); >=20 > /** > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf > b/MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf > index 680626378f..48212773e8 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf > @@ -11,7 +11,7 @@ > # This external input must be validated carefully to avoid security iss= ue like > # buffer overflow, integer overflow. > # > -# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved. > +# Copyright (c) 2006 - 2017, Intel Corporation. All rights > +reserved.
> # This program and the accompanying materials # are licensed and made > available under the terms and conditions of the BSD License # which > accompanies this distribution. The full text of the license may be found= at > @@ -82,6 +82,7 @@ > ## BY_START > ## TO_START > gEfiDevicePathProtocolGuid > + gEfiPartitionInfoProtocolGuid ## BY_START > gEfiDiskIoProtocolGuid ## TO_START > gEfiDiskIo2ProtocolGuid ## TO_START >=20 > -- > 2.12.0.windows.1