Reviewed-by: Eric Dong <eric.d...@intel.com>
Feng, Please help to check in this code. Thanks, Eric > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Cecil > Sheng > Sent: Tuesday, March 08, 2016 3:56 PM > To: edk2-devel@lists.01.org > Cc: Cecil Sheng > Subject: [edk2] [PATCH v6] MdePkg: Add UEFI2.6 HII Image Ex and Image Decoder > protocol definition. > > Add the definition for the new UEFI 2.6 EFI_HII_IMAGE_EX_PROTOCOL and > EFI_IMAGE_DECODER_PROTOCOL. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Cecil Sheng <cecil.sh...@hpe.com> > Reviewed-by: Samer El-Haj-Mahmoud <el...@hpe.com> > Reviewed-by: Abner Chang <abner.ch...@hpe.com> > --- > MdePkg/Include/Protocol/HiiImageEx.h | 245 > +++++++++++++++++++++++++++++++++ > MdePkg/Include/Protocol/ImageDecoder.h | 192 ++++++++++++++++++++++++++ > MdePkg/MdePkg.dec | 14 ++ > 3 files changed, 451 insertions(+) > create mode 100644 MdePkg/Include/Protocol/HiiImageEx.h > create mode 100644 MdePkg/Include/Protocol/ImageDecoder.h > > diff --git a/MdePkg/Include/Protocol/HiiImageEx.h > b/MdePkg/Include/Protocol/HiiImageEx.h > new file mode 100644 > index 0000000..9393a53 > --- /dev/null > +++ b/MdePkg/Include/Protocol/HiiImageEx.h > @@ -0,0 +1,245 @@ > +/** @file > + Protocol which allows access to the images in the images database. > + > +(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> > + > +This program and the accompanying materials are licensed and made available > under > +the terms and conditions of the BSD License that accompanies this > distribution. > +The full text of the license may be found at > +http://opensource.org/licenses/bsd-license.php. > + > +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. > + > +**/ > + > +#ifndef EFI_HII_IMAGE_EX_H > +#define EFI_HII_IMAGE_EX_H > + > +#include <Protocol/HiiImage.h> > + > +// > +// Global ID for the Hii Image Ex Protocol. > +// > +#define EFI_HII_IMAGE_EX_PROTOCOL_GUID \ > + {0x1a1241e6, 0x8f19, 0x41a9, { 0xbc, 0xe, 0xe8, 0xef, 0x39, 0xe0, 0x65, > 0x46 }} > + > +typedef struct _EFI_HII_IMAGE_EX_PROTOCOL EFI_HII_IMAGE_EX_PROTOCOL; > + > +/** > + The prototype of this extension function is the same with > EFI_HII_IMAGE_PROTOCOL.NewImage(). > + Same with EFI_HII_IMAGE_PROTOCOL.NewImage().This protocol invokes > +EFI_HII_IMAGE_PROTOCOL.NewImage() implicitly. > + > + @param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL > instance. > + @param PackageList Handle of the package list where this image > will > + be added. > + @param ImageId On return, contains the new image id, which > is > + unique within PackageList. > + @param Image Points to the image. > + > + @retval EFI_SUCCESS The new image was added successfully. > + @retval EFI_NOT_FOUND The specified PackageList could not be > found in > + database. > + @retval EFI_OUT_OF_RESOURCES Could not add the image due to lack of > resources. > + @retval EFI_INVALID_PARAMETER Image is NULL or ImageId is NULL. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_HII_NEW_IMAGE_EX)( > + IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This, > + IN EFI_HII_HANDLE PackageList, > + OUT EFI_IMAGE_ID *ImageId, > + IN CONST EFI_IMAGE_INPUT *Image > + ); > + > +/** > + Return the information about the image, associated with the package list. > + The prototype of this extension function is the same with > EFI_HII_IMAGE_PROTOCOL.GetImage(). > + Same with EFI_HII_IMAGE_PROTOCOL.SetImage(),this protocol invokes > EFI_HII_IMAGE_PROTOCOL.SetImage() implicitly. > + > + @param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL > instance. > + @param PackageList Handle of the package list where this image > will > + be searched. > + @param ImageId The image's id,, which is unique within > + PackageList. > + @param Image Points to the image. > + > + @retval EFI_SUCCESS The new image was returned successfully. > + @retval EFI_NOT_FOUND The image specified by ImageId is not in the > + database. The specified PackageList is not > in > + the database. > + @retval EFI_BUFFER_TOO_SMALL The buffer specified by ImageSize is too > small to > + hold the image. > + @retval EFI_INVALID_PARAMETER The Image or ImageSize was NULL. > + @retval EFI_OUT_OF_RESOURCES The bitmap could not be retrieved because > there > + was not enough memory. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_HII_GET_IMAGE_EX)( > + IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This, > + IN EFI_HII_HANDLE PackageList, > + IN EFI_IMAGE_ID ImageId, > + OUT EFI_IMAGE_INPUT *Image > + ); > + > +/** > + Change the information about the image. The prototype of this extension > + function is the same with EFI_HII_IMAGE_PROTOCOL.SetImage(). Same with > + EFI_HII_IMAGE_PROTOCOL.DrawImageId(),this protocol invokes > EFI_HII_IMAGE_PROTOCOL.DrawImageId() implicitly. > + > + @param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL > instance. > + @param PackageList The package list containing the images. > + @param ImageId The image's id,, which is unique within > + PackageList. > + @param Image Points to the image. > + > + @retval EFI_SUCCESS The new image was updated successfully. > + @retval EFI_NOT_FOUND The image specified by ImageId is not in the > + database. The specified PackageList is not > in > + the database. > + @retval EFI_INVALID_PARAMETER The Image was NULL. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_HII_SET_IMAGE_EX)( > + IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This, > + IN EFI_HII_HANDLE PackageList, > + IN EFI_IMAGE_ID ImageId, > + IN CONST EFI_IMAGE_INPUT *Image > + ); > + > +/** > + Renders an image to a bitmap or to the display. The prototype of this > extension > + function is the same with EFI_HII_IMAGE_PROTOCOL.DrawImage(). > + Same with EFI_HII_IMAGE_PROTOCOL.SetImage(),this protocol invokes > EFI_HII_IMAGE_PROTOCOL.SetImage() implicitly. > + > + @param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL > instance. > + @param Flags Describes how the image is to be drawn. > + @param Image Points to the image to be displayed. > + @param Blt If this points to a non-NULL on entry, this > points > + to the image, which is Width pixels wide and > + Height pixels high. The image will be > drawn onto > + this image and EFI_HII_DRAW_FLAG_CLIP is > implied. > + If this points to a NULL on entry, then a > buffer > + will be allocated to hold the generated > image and > + the pointer updated on exit. It is the > caller's > + responsibility to free this buffer. > + @param BltX Specifies the offset from the left and top > edge of > + the output image of the first pixel in the > image. > + @param BltY Specifies the offset from the left and top > edge of > + the output image of the first pixel in the > image. > + > + @retval EFI_SUCCESS The image was successfully drawn. > + @retval EFI_OUT_OF_RESOURCES Unable to allocate an output buffer for Blt. > + @retval EFI_INVALID_PARAMETER The Image or Blt was NULL. > + Any combination of Flags is invalid. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_HII_DRAW_IMAGE_EX)( > + IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This, > + IN EFI_HII_DRAW_FLAGS Flags, > + IN CONST EFI_IMAGE_INPUT *Image, > + IN OUT EFI_IMAGE_OUTPUT **Blt, > + IN UINTN BltX, > + IN UINTN BltY > + ); > + > +/** > + Renders an image to a bitmap or the screen containing the contents of the > specified > + image. The prototype of this extension function is the same with E > + FI_HII_IMAGE_PROTOCOL.DrawImageId(). > + Same with EFI_HII_IMAGE_PROTOCOL.DrawImageId(),this protocol invokes > +EFI_HII_IMAGE_PROTOCOL.DrawImageId() implicitly. > + > + @param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL > instance. > + @param Flags Describes how the image is to be drawn. > + @param PackageList The package list in the HII database to > search for > + the specified image. > + @param ImageId The image's id, which is unique within > + PackageList. > + @param Blt If this points to a non-NULL on entry, this > points > + to the image, which is Width pixels wide and > + Height pixels high. The image will be drawn > onto > + this image and EFI_HII_DRAW_FLAG_CLIP is > implied. > + If this points to a NULL on entry, then a > buffer > + will be allocated to hold the generated > image > + and the pointer updated on exit. It is the > caller's > + responsibility to free this buffer. > + @param BltX Specifies the offset from the left and top > edge of > + the output image of the first pixel in the > image. > + @param BltY Specifies the offset from the left and top > edge of > + the output image of the first pixel in the > image. > + > + @retval EFI_SUCCESS The image was successfully drawn. > + @retval EFI_OUT_OF_RESOURCES Unable to allocate an output buffer for Blt. > + @retval EFI_INVALID_PARAMETER The Blt was NULL. > + @retval EFI_NOT_FOUND The image specified by ImageId is not in > the database. > + The specified PackageList is not in the > database. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_HII_DRAW_IMAGE_ID_EX)( > + IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This, > + IN EFI_HII_DRAW_FLAGS Flags, > + IN EFI_HII_HANDLE PackageList, > + IN EFI_IMAGE_ID ImageId, > + IN OUT EFI_IMAGE_OUTPUT **Blt, > + IN UINTN BltX, > + IN UINTN BltY > + ); > + > +/** > + This function returns the image information to EFI_IMAGE_OUTPUT. Only the > width > + and height are returned to the EFI_IMAGE_OUTPUT instead of decoding the > image > + to the buffer. This function is used to get the geometry of the image. > This function > + will try to locate all of the EFI_HII_IMAGE_DECODER_PROTOCOL installed on > the > + system if the decoder of image type is not supported by the > EFI_HII_IMAGE_EX_PROTOCOL. > + > + @param This A pointer to the EFI_HII_IMAGE_EX_PROTOCOL > instance. > + @param PackageList Handle of the package list where this image > will > + be searched. > + @param ImageId The image's id,, which is unique within > PackageList. > + @param Image Points to the image. > + > + @retval EFI_SUCCESS The new image was returned successfully. > + @retval EFI_NOT_FOUND The image specified by ImageId is not in the > + database. The specified PackageList is not > in the database. > + @retval EFI_BUFFER_TOO_SMALL The buffer specified by ImageSize is too > small to > + hold the image. > + @retval EFI_INVALID_PARAMETER The Image or ImageSize was NULL. > + @retval EFI_OUT_OF_RESOURCES The bitmap could not be retrieved because > there > + was not enough memory. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_HII_GET_IMAGE_INFO)( > + IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This, > + IN EFI_HII_HANDLE PackageList, > + IN EFI_IMAGE_ID ImageId, > + OUT EFI_IMAGE_INPUT *Image > + ); > + > +/// > +/// Protocol which allows access to the images in the images database. > +/// > +struct _EFI_HII_IMAGE_EX_PROTOCOL { > + EFI_HII_NEW_IMAGE_EX NewImageEx; > + EFI_HII_GET_IMAGE_EX GetImageEx; > + EFI_HII_SET_IMAGE_EX SetImageEx; > + EFI_HII_DRAW_IMAGE_EX DrawImageEx; > + EFI_HII_DRAW_IMAGE_ID_EX DrawImageIdEx; > + EFI_HII_GET_IMAGE_INFO GetImageInfo; > +}; > + > +extern EFI_GUID gEfiHiiImageExProtocolGuid; > + > +#endif > diff --git a/MdePkg/Include/Protocol/ImageDecoder.h > b/MdePkg/Include/Protocol/ImageDecoder.h > new file mode 100644 > index 0000000..1c29433 > --- /dev/null > +++ b/MdePkg/Include/Protocol/ImageDecoder.h > @@ -0,0 +1,192 @@ > +/** @file > + This protocol provides generic image decoder interfaces to various image > formats. > + > +(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> > + > +This program and the accompanying materials are licensed and made available > under > +the terms and conditions of the BSD License that accompanies this > distribution. > +The full text of the license may be found at > +http://opensource.org/licenses/bsd-license.php. > + > +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. > + > +**/ > +#ifndef EFI_IMAGE_DECODER_PROTOCOL_H > +#define EFI_IMAGE_DECODER_PROTOCOL_H > + > +#include <Protocol/HiiImage.h> > + > + > +#define EFI_HII_IMAGE_DECODER_PROTOCOL_GUID \ > + { 0x2f707ebb, 0x4a1a, 0x11d4, 0x9a, {0x38,0x00,0x90,0x27,0x3f,0xc1,0x4d}} > + > + > +#define EFI_HII_IMAGE_DECODER_NAME_JPEG_GUID \ > + {0xefefd093, 0xd9b, 0x46eb, { 0xa8, 0x56, 0x48, 0x35, 0x7, 0x0, 0xc9, 0x8 > }} > + > +#define EFI_HII_IMAGE_DECODER_NAME_PNG_GUID \ > + {0xaf060190, 0x5e3a, 0x4025, { 0xaf, 0xbd, 0xe1, 0xf9, 0x5, 0xbf, 0xaa, > 0x4c }} > + > +typedef struct _EFI_HII_IMAGE_DECODER_PROTOCOL > EFI_HII_IMAGE_DECODER_PROTOCOL; > + > +typedef enum { > + EFI_HII_IMAGE_DECODER_COLOR_TYPE_RGB = 0x0, > + EFI_HII_IMAGE_DECODER_COLOR_TYPE_RGBA = 0x1, > + EFI_HII_IMAGE_DECODER_COLOR_TYPE_CMYK = 0x2, > + EFI_HII_IMAGE_DECODER_COLOR_TYPE_UNKNOWN = 0xFF > +} EFI_HII_IMAGE_DECODER_COLOR_TYPE; > + > +// > +// EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER > +// > +// DecoderName Name of the decoder > +// ImageInfoSize The size of entire image information structure in bytes > +// ImageWidth The image width > +// ImageHeight The image height > +// ColorType The color type, see EFI_HII_IMAGE_DECODER_COLOR_TYPE. > +// ColorDepthInBits The color depth in bits > +// > +typedef struct _EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER { > + EFI_GUID DecoderName; > + UINT16 ImageInfoSize; > + UINT16 ImageWidth; > + UINT16 ImageHeight; > + EFI_HII_IMAGE_DECODER_COLOR_TYPE ColorType; > + UINT8 ColorDepthInBits; > +} EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER; > + > +// > +// EFI_HII_IMAGE_DECODER_JPEG_INFO > +// Header The common header > +// ScanType The scan type of JPEG image > +// Reserved Reserved > +// > +typedef struct _EFI_HII_IMAGE_DECODER_JPEG_INFO { > + EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER Header; > + > +#define EFI_IMAGE_JPEG_SCANTYPE_PROGREESSIVE 0x01 > +#define EFI_IMAGE_JPEG_SCANTYPE_INTERLACED 0x02 > + UINT16 ScanType; > + UINT64 Reserved; > +} EFI_HII_IMAGE_DECODER_JPEG_INFO; > + > +// > +// EFI_HII_IMAGE_DECODER_PNG_INFO > +// Header The common header > +// Channels Number of channels in the PNG image > +// Reserved Reserved > +// > +typedef struct _EFI_HII_IMAGE_DECODER_PNG_INFO { > + EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER Header; > + UINT16 Channels; > + UINT64 Reserved; > +} EFI_HII_IMAGE_DECODER_PNG_INFO; > + > +/** > + There could be more than one EFI_HII_IMAGE_DECODER_PROTOCOL instances > installed > + in the system for different image formats. This function returns the > decoder > + name which callers can use to find the proper image decoder for the image. > It > + is possible to support multiple image formats in one > EFI_HII_IMAGE_DECODER_PROTOCOL. > + The capability of the supported image formats is returned in DecoderName > and > + NumberOfDecoderName. > + > + @param This EFI_HII_IMAGE_DECODER_PROTOCOL instance. > + @param DecoderName Pointer to a dimension to retrieve the > decoder > + names in EFI_GUID format. The number of the > + decoder names is returned in > NumberOfDecoderName. > + @param NumberofDecoderName Pointer to retrieve the number of decoders > which > + supported by this decoder driver. > + > + @retval EFI_SUCCESS Get decoder name success. > + @retval EFI_UNSUPPORTED Get decoder name fail. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_HII_IMAGE_DECODER_GET_DECODER_NAME)( > + IN EFI_HII_IMAGE_DECODER_PROTOCOL *This, > + IN OUT EFI_GUID **DecoderName, > + IN OUT UINT16 *NumberofDecoderName > + ); > + > +/** > + This function returns the image information of the given image raw data. > This > + function first checks whether the image raw data is supported by this > decoder > + or not. This function may go through the first few bytes in the image raw > data > + for the specific data structure or the image signature. If the image is > not supported > + by this image decoder, this function returns EFI_UNSUPPORTED to the caller. > + Otherwise, this function returns the proper image information to the > caller. > + It is the caller’s responsibility to free the ImageInfo. > + > + @param This EFI_HII_IMAGE_DECODER_PROTOCOL instance. > + @param Image Pointer to the image raw data. > + @param SizeOfImage Size of the entire image raw data. > + @param ImageInfo Pointer to recieve > EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER. > + > + @retval EFI_SUCCESS Get image info success. > + @retval EFI_UNSUPPORTED Unsupported format of image. > + @retval EFI_INVALID_PARAMETER Incorrect parameter. > + @retval EFI_BAD_BUFFER_SIZE Not enough memory. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_HII_IMAGE_DECODER_GET_IMAGE_INFO)( > + IN EFI_HII_IMAGE_DECODER_PROTOCOL *This, > + IN VOID *Image, > + IN UINTN SizeOfImage, > + IN OUT EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER **ImageInfo > + ); > + > +/** > + This function decodes the image which the image type of this image is > supported > + by this EFI_HII_IMAGE_DECODER_PROTOCOL. If **Bitmap is not NULL, the > caller intends > + to put the image in the given image buffer. That allows the caller to put > an > + image overlap on the original image. The transparency is handled by the > image > + decoder because the transparency capability depends on the image format. > Callers > + can set Transparent to FALSE to force disabling the transparency process > on the > + image. Forcing Transparent to FALSE may also improve the performance of > the image > + decoding because the image decoder can skip the transparency processing. > If **Bitmap > + is NULL, the image decoder allocates the memory buffer for the > EFI_IMAGE_OUTPUT > + and decodes the image to the image buffer. It is the caller’s > responsibility to > + free the memory for EFI_IMAGE_OUTPUT. Image decoder doesn’t have to handle > the > + transparency in this case because there is no background image given by > the caller. > + The background color in this case is all black (#00000000). > + > + @param This EFI_HII_IMAGE_DECODER_PROTOCOL instance. > + @param Image Pointer to the image raw data. > + @param ImageRawDataSize Size of the entire image raw data. > + @param Blt EFI_IMAGE_OUTPUT to receive the image or > overlap > + the image on the original buffer. > + @param Transparent BOOLEAN value indicates whether the image > decoder > + has to handle the transparent image or not. > + > + > + @retval EFI_SUCCESS Image decode success. > + @retval EFI_UNSUPPORTED Unsupported format of image. > + @retval EFI_INVALID_PARAMETER Incorrect parameter. > + @retval EFI_BAD_BUFFER_SIZE Not enough memory. > + > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *EFI_HII_IMAGE_DECODER_DECODE)( > + IN EFI_HII_IMAGE_DECODER_PROTOCOL *This, > + IN VOID *Image, > + IN UINTN ImageRawDataSize, > + IN OUT EFI_IMAGE_OUTPUT **BitMap OPTIONAL, > + IN BOOLEAN Transparent > + ); > + > +struct _EFI_HII_IMAGE_DECODER_PROTOCOL { > + EFI_HII_IMAGE_DECODER_GET_DECODER_NAME GetImageDecoderName; > + EFI_HII_IMAGE_DECODER_GET_IMAGE_INFO GetImageInfo; > + EFI_HII_IMAGE_DECODER_DECODE DecodeImage; > +}; > + > +extern EFI_GUID gEfiHiiImageDecoderProtocolGuid; > +extern EFI_GUID gEfiHiiImageDecoderNameJpegGuid; > +extern EFI_GUID gEfiHiiImageDecoderNamePngGuid; > + > +#endif > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec > index c49f1ce..87b6d42 100644 > --- a/MdePkg/MdePkg.dec > +++ b/MdePkg/MdePkg.dec > @@ -6,6 +6,8 @@ > # > # Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR> > # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> > +# (C) Copyright 2016 Hewlett Packard Enterprise Development LP<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. > @@ -739,6 +741,11 @@ > ## Include/Guid/Cper.h > gEfiIa32X64ErrorTypeMsCheckGuid = { 0x48AB7F57, 0xDC34, 0x4f6c, { 0xA7, > 0xD3, 0xB0, 0xB5, 0xB0, 0xA7, 0x43, 0x14 }} > > + ## Guid for Image decoder > + ## Include/Protocol/ImageDecoder.h > + gEfiHiiImageDecoderNameJpegGuid = { 0xefefd093, 0x0d9b, 0x46eb, > { 0xa8, 0x56, 0x48, 0x35, 0x07, 0x00, 0xc9, 0x08 }} > + gEfiHiiImageDecoderNamePngGuid = { 0xaf060190, 0x5e3a, 0x4025, > { 0xaf, 0xbd, 0xe1, 0xf9, 0x05, 0xbf, 0xaa, 0x4c }} > + > [Ppis] > ## Include/Ppi/MasterBootMode.h > gEfiPeiMasterBootModePpiGuid = { 0x7408d748, 0xfc8c, 0x4ee6, {0x92, 0x88, > 0xc4, 0xbe, 0xc0, 0x92, 0xa4, 0x10 } } > @@ -1604,6 +1611,13 @@ > ## Include/Protocol/WiFi2.h > gEfiWiFi2ProtocolGuid = { 0x1b0fb9bf, 0x699d, 0x4fdd, > {0xa7, 0xc3, 0x25, 0x46, 0x68, 0x1b, 0xf6, 0x3b }} > > + ## Include/Protocol/ImageDecoder.h > + gEfiImageDecoderProtocolGuid = { 0x2f707ebb, 0x4a1a, 0x11d4, > 0x9a, {0x38,0x00,0x90,0x27,0x3f,0xc1,0x4d}} > + > + > + ## Include/Protocol/HiiImageEx.h > + gEfiHiiImageExProtocolGuid = { 0x1a1241e6, 0x8f19, 0x41a9, { > 0xbc, 0xe, 0xe8, 0xef, 0x39, 0xe0, 0x65, 0x46 }} > + > # > # [Error.gEfiMdePkgTokenSpaceGuid] > # 0x80000001 | Invalid value provided. > -- > 2.6.3.windows.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel