Reviewed-by: Ruiyu Ni <ruiyu...@intel.com> 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 <hao.a...@intel.com>; Ni, Ruiyu <ruiyu...@intel.com>; Bret > Barkelew <brbar...@microsoft.com> > Subject: [PATCH 2/2] MdeModulePkg/PartitionDxe: Add impl of Partition > Information Protocol > > Cc: Ruiyu Ni <ruiyu...@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Bret Barkelew <brbar...@microsoft.com> > Signed-off-by: Hao Wu <hao.a...@intel.com> > --- > 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(-) > > 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 > > -Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR> > 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; > > Found = EFI_NOT_FOUND; > Media = BlockIo->Media; > @@ -248,6 +249,10 @@ PartitionInstallElToritoChildHandles ( > ); > } > > + ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL)); > + PartitionInfo.Revision = EFI_PARTITION_INFO_PROTOCOL_REVISION; > + PartitionInfo.Type = PARTITION_TYPE_OTHER; > + > Status = 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 = 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. > > -Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR> > 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; > > ProtectiveMbr = NULL; > PrimaryHeader = NULL; > @@ -380,17 +381,25 @@ PartitionInstallGptChildHandles ( > } > > ZeroMem (&HdDev, sizeof (HdDev)); > - HdDev.Header.Type = MEDIA_DEVICE_PATH; > - HdDev.Header.SubType = MEDIA_HARDDRIVE_DP; > + HdDev.Header.Type = MEDIA_DEVICE_PATH; > + HdDev.Header.SubType = MEDIA_HARDDRIVE_DP; > SetDevicePathNodeLength (&HdDev.Header, sizeof (HdDev)); > > - HdDev.PartitionNumber = (UINT32) Index + 1; > - HdDev.MBRType = MBR_TYPE_EFI_PARTITION_TABLE_HEADER; > - HdDev.SignatureType = SIGNATURE_TYPE_GUID; > - HdDev.PartitionStart = Entry->StartingLBA; > - HdDev.PartitionSize = Entry->EndingLBA - Entry->StartingLBA + 1; > + HdDev.PartitionNumber = (UINT32) Index + 1; > + HdDev.MBRType = MBR_TYPE_EFI_PARTITION_TABLE_HEADER; > + HdDev.SignatureType = SIGNATURE_TYPE_GUID; > + HdDev.PartitionStart = Entry->StartingLBA; > + HdDev.PartitionSize = Entry->EndingLBA - Entry->StartingLBA + 1; > CopyMem (HdDev.Signature, &Entry->UniquePartitionGUID, sizeof > (EFI_GUID)); > > + ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL)); > + PartitionInfo.Revision = EFI_PARTITION_INFO_PROTOCOL_REVISION; > + PartitionInfo.Type = PARTITION_TYPE_GPT; > + if (CompareGuid (&Entry->PartitionTypeGUID, > &gEfiPartTypeSystemPartGuid)) { > + PartitionInfo.System = 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.PartitionStart)); > 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 > ); > } > > 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. > > Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR> - > Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR> > 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; > > Found = EFI_NOT_FOUND; > > @@ -225,6 +226,14 @@ PartitionInstallMbrChildHandles ( > HdDev.PartitionSize = UNPACK_UINT32 (Mbr- > >Partition[Index].SizeInLBA); > CopyMem (HdDev.Signature, &(Mbr->UniqueMbrSignature[0]), sizeof > (Mbr->UniqueMbrSignature)); > > + ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL)); > + PartitionInfo.Revision = EFI_PARTITION_INFO_PROTOCOL_REVISION; > + PartitionInfo.Type = PARTITION_TYPE_MBR; > + if (Mbr->Partition[Index].OSIndicator == EFI_PARTITION) { > + PartitionInfo.System = 1; > + } > + CopyMem (&PartitionInfo.Info.Mbr, &Mbr->Partition[Index], sizeof > + (MBR_PARTITION_RECORD)); > + > Status = 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 == > EFI_PARTITION) > + MBR_SIZE > ); > > if (!EFI_ERROR (Status)) { > @@ -288,6 +297,14 @@ PartitionInstallMbrChildHandles ( > // > *((UINT32 *) &HdDev.Signature[0]) = 0; > > + ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL)); > + PartitionInfo.Revision = EFI_PARTITION_INFO_PROTOCOL_REVISION; > + PartitionInfo.Type = PARTITION_TYPE_MBR; > + if (Mbr->Partition[0].OSIndicator == EFI_PARTITION) { > + PartitionInfo.System = 1; > + } > + CopyMem (&PartitionInfo.Info.Mbr, &Mbr->Partition[0], sizeof > + (MBR_PARTITION_RECORD)); > + > Status = 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 == EFI_PARTITION) > + MBR_SIZE > ); > if (!EFI_ERROR (Status)) { > Found = 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. > > -Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR> > 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 GUID on > handle. > > @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; > } > > - if (InstallEspGuid) { > + // > + // Set the PartitionInfo into Private Data. > + // > + CopyMem (&Private->PartitionInfo, PartitionInfo, sizeof > + (EFI_PARTITION_INFO_PROTOCOL)); > + > + if ((PartitionInfo->System == 1)) { > Private->EspGuid = &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. > > -Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR> > 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 <Protocol/DriverBinding.h> > #include <Protocol/DiskIo.h> > #include <Protocol/DiskIo2.h> > +#include <Protocol/PartitionInfo.h> > #include <Library/DebugLib.h> > #include <Library/UefiDriverEntryPoint.h> #include <Library/BaseLib.h> > @@ -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; > > } PARTITION_PRIVATE_DATA; > > @@ -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 GUID on > handle. > > @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 > ); > > /** > 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 issue > like > # buffer overflow, integer overflow. > # > -# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2006 - 2017, Intel Corporation. All rights > +reserved.<BR> > # 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 > > -- > 2.12.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel