OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
HiiDatabase.h File Reference
#include <Uefi.h>
#include <Protocol/DevicePath.h>
#include <Protocol/HiiFont.h>
#include <Protocol/HiiImage.h>
#include <Protocol/HiiImageEx.h>
#include <Protocol/HiiImageDecoder.h>
#include <Protocol/HiiString.h>
#include <Protocol/HiiDatabase.h>
#include <Protocol/HiiConfigRouting.h>
#include <Protocol/HiiConfigAccess.h>
#include <Protocol/HiiConfigKeyword.h>
#include <Protocol/SimpleTextOut.h>
#include <Guid/HiiKeyBoardLayout.h>
#include <Guid/GlobalVariable.h>
#include <Guid/MdeModuleHii.h>
#include <Guid/VariableFormat.h>
#include <Guid/PcdDataBaseSignatureGuid.h>
#include <Library/DebugLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/UefiDriverEntryPoint.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/BaseLib.h>
#include <Library/DevicePathLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/UefiLib.h>
#include <Library/PcdLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/PrintLib.h>
#include <Library/OcStringLib.h>

Go to the source code of this file.

Data Structures

struct  VARSTORAGE_DEFAULT_DATA
 
struct  IFR_VARSTORAGE_DATA
 
struct  IFR_BLOCK_DATA
 
struct  IFR_DEFAULT_DATA
 
struct  HII_FORMSET_STORAGE
 
struct  _HII_STRING_PACKAGE_INSTANCE
 
struct  _HII_IFR_PACKAGE_INSTANCE
 
struct  _HII_SIMPLE_FONT_PACKAGE_INSTANCE
 
struct  _HII_FONT_PACKAGE_INSTANCE
 
struct  _HII_GLYPH_INFO
 
struct  _HII_FONT_INFO
 
struct  _HII_GLOBAL_FONT_INFO
 
struct  _HII_IMAGE_PACKAGE_INSTANCE
 
struct  _HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE
 
struct  _HII_GUID_PACKAGE_INSTANCE
 
struct  _HII_DATABASE_PACKAGE_LIST_INSTANCE
 
struct  HII_HANDLE
 
struct  _HII_DATABASE_RECORD
 
struct  _HII_DATABASE_NOTIFY
 
struct  _HII_DATABASE_PRIVATE_DATA
 

Macros

#define MAX_STRING_LENGTH   1024
 
#define MAX_FONT_NAME_LEN   256
 
#define NARROW_BASELINE   15
 
#define WIDE_BASELINE   14
 
#define SYS_FONT_INFO_MASK   0x37
 
#define REPLACE_UNKNOWN_GLYPH   0xFFFD
 
#define PROPORTIONAL_GLYPH   0x80
 
#define NARROW_GLYPH   0x40
 
#define BITMAP_LEN_1_BIT(Width, Height)
 
#define BITMAP_LEN_4_BIT(Width, Height)
 
#define BITMAP_LEN_8_BIT(Width, Height)
 
#define BITMAP_LEN_24_BIT(Width, Height)
 
#define EFI_HII_VARSTORE_BUFFER   0
 
#define EFI_HII_VARSTORE_NAME_VALUE   1
 
#define EFI_HII_VARSTORE_EFI_VARIABLE   2
 
#define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER   3
 
#define EFI_KEYWORD_FILTER_READONY   0x01
 
#define EFI_KEYWORD_FILTER_REAWRITE   0x02
 
#define EFI_KEYWORD_FILTER_BUFFER   0x10
 
#define EFI_KEYWORD_FILTER_NUMERIC   0x20
 
#define EFI_KEYWORD_FILTER_NUMERIC_1   0x30
 
#define EFI_KEYWORD_FILTER_NUMERIC_2   0x40
 
#define EFI_KEYWORD_FILTER_NUMERIC_4   0x50
 
#define EFI_KEYWORD_FILTER_NUMERIC_8   0x60
 
#define HII_FORMSET_STORAGE_SIGNATURE   SIGNATURE_32 ('H', 'S', 'T', 'G')
 
#define HII_STRING_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','i','s','p')
 
#define HII_IFR_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','f','r','p')
 
#define HII_S_FONT_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','s','f','p')
 
#define HII_FONT_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','i','f','p')
 
#define HII_GLYPH_INFO_SIGNATURE   SIGNATURE_32 ('h','g','i','s')
 
#define HII_FONT_INFO_SIGNATURE   SIGNATURE_32 ('h','l','f','i')
 
#define HII_GLOBAL_FONT_INFO_SIGNATURE   SIGNATURE_32 ('h','g','f','i')
 
#define HII_PIXEL_MASK   0x80
 
#define HII_KB_LAYOUT_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','k','l','p')
 
#define HII_GUID_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','i','g','p')
 
#define HII_HANDLE_SIGNATURE   SIGNATURE_32 ('h','i','h','l')
 
#define HII_DATABASE_RECORD_SIGNATURE   SIGNATURE_32 ('h','i','d','r')
 
#define HII_DATABASE_NOTIFY_SIGNATURE   SIGNATURE_32 ('h','i','d','n')
 
#define HII_DATABASE_PRIVATE_DATA_SIGNATURE   SIGNATURE_32 ('H', 'i', 'D', 'p')
 
#define HII_FONT_DATABASE_PRIVATE_DATA_FROM_THIS(a)
 
#define HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS(a)
 
#define HII_IMAGE_EX_DATABASE_PRIVATE_DATA_FROM_THIS(a)
 
#define HII_STRING_DATABASE_PRIVATE_DATA_FROM_THIS(a)
 
#define HII_DATABASE_DATABASE_PRIVATE_DATA_FROM_THIS(a)
 
#define CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS(a)
 
#define CONFIG_KEYWORD_HANDLER_DATABASE_PRIVATE_DATA_FROM_THIS(a)
 

Typedefs

typedef struct _HII_STRING_PACKAGE_INSTANCE HII_STRING_PACKAGE_INSTANCE
 
typedef struct _HII_IFR_PACKAGE_INSTANCE HII_IFR_PACKAGE_INSTANCE
 
typedef struct _HII_SIMPLE_FONT_PACKAGE_INSTANCE HII_SIMPLE_FONT_PACKAGE_INSTANCE
 
typedef struct _HII_FONT_PACKAGE_INSTANCE HII_FONT_PACKAGE_INSTANCE
 
typedef struct _HII_GLYPH_INFO HII_GLYPH_INFO
 
typedef struct _HII_FONT_INFO HII_FONT_INFO
 
typedef struct _HII_GLOBAL_FONT_INFO HII_GLOBAL_FONT_INFO
 
typedef struct _HII_IMAGE_PACKAGE_INSTANCE HII_IMAGE_PACKAGE_INSTANCE
 
typedef struct _HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE
 
typedef struct _HII_GUID_PACKAGE_INSTANCE HII_GUID_PACKAGE_INSTANCE
 
typedef struct _HII_DATABASE_PACKAGE_LIST_INSTANCE HII_DATABASE_PACKAGE_LIST_INSTANCE
 
typedef struct _HII_DATABASE_RECORD HII_DATABASE_RECORD
 
typedef struct _HII_DATABASE_NOTIFY HII_DATABASE_NOTIFY
 
typedef struct _HII_DATABASE_PRIVATE_DATA HII_DATABASE_PRIVATE_DATA
 

Enumerations

enum  DEFAULT_VALUE_TYPE { DefaultValueFromDefault = 0 , DefaultValueFromOtherDefault , DefaultValueFromFlag , DefaultValueFromOpcode }
 

Functions

VOID GenerateSubStr (IN CONST EFI_STRING String, IN UINTN BufferLen, IN VOID *Buffer, IN UINT8 Flag, OUT EFI_STRING *SubStr)
 
BOOLEAN IsHiiHandleValid (EFI_HII_HANDLE Handle)
 
BOOLEAN IsFontInfoExisted (IN HII_DATABASE_PRIVATE_DATA *Private, IN EFI_FONT_INFO *FontInfo, IN EFI_FONT_INFO_MASK *FontInfoMask, OPTIONAL IN EFI_FONT_HANDLE FontHandle, OPTIONAL OUT HII_GLOBAL_FONT_INFO **GlobalFontInfo OPTIONAL)
 
EFI_STATUS InvokeRegisteredFunction (IN HII_DATABASE_PRIVATE_DATA *Private, IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType, IN VOID *PackageInstance, IN UINT8 PackageType, IN EFI_HII_HANDLE Handle)
 
EFI_STATUS GetSystemFont (IN HII_DATABASE_PRIVATE_DATA *Private, OUT EFI_FONT_DISPLAY_INFO **FontInfo, OUT UINTN *FontInfoSize OPTIONAL)
 
EFI_STATUS FindStringBlock (IN HII_DATABASE_PRIVATE_DATA *Private, IN HII_STRING_PACKAGE_INSTANCE *StringPackage, IN EFI_STRING_ID StringId, OUT UINT8 *BlockType, OPTIONAL OUT UINT8 **StringBlockAddr, OPTIONAL OUT UINTN *StringTextOffset, OPTIONAL OUT EFI_STRING_ID *LastStringId, OPTIONAL OUT EFI_STRING_ID *StartStringId OPTIONAL)
 
EFI_STATUS FindGlyphBlock (IN HII_FONT_PACKAGE_INSTANCE *FontPackage, IN CHAR16 CharValue, OUT UINT8 **GlyphBuffer, OPTIONAL OUT EFI_HII_GLYPH_INFO *Cell, OPTIONAL OUT UINTN *GlyphBufferLen OPTIONAL)
 
EFI_STATUS ExportFormPackages (IN HII_DATABASE_PRIVATE_DATA *Private, IN EFI_HII_HANDLE Handle, IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList, IN UINTN UsedSize, IN UINTN BufferSize, IN OUT VOID *Buffer, IN OUT UINTN *ResultSize)
 
EFI_STATUS EFIAPI HiiStringToImage (IN CONST EFI_HII_FONT_PROTOCOL *This, IN EFI_HII_OUT_FLAGS Flags, IN CONST EFI_STRING String, IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL, IN OUT EFI_IMAGE_OUTPUT **Blt, IN UINTN BltX, IN UINTN BltY, OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL, OUT UINTN *RowInfoArraySize OPTIONAL, OUT UINTN *ColumnInfoArray OPTIONAL)
 
EFI_STATUS EFIAPI HiiStringIdToImage (IN CONST EFI_HII_FONT_PROTOCOL *This, IN EFI_HII_OUT_FLAGS Flags, IN EFI_HII_HANDLE PackageList, IN EFI_STRING_ID StringId, IN CONST CHAR8 *Language, IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL, IN OUT EFI_IMAGE_OUTPUT **Blt, IN UINTN BltX, IN UINTN BltY, OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL, OUT UINTN *RowInfoArraySize OPTIONAL, OUT UINTN *ColumnInfoArray OPTIONAL)
 
EFI_STATUS EFIAPI HiiGetGlyph (IN CONST EFI_HII_FONT_PROTOCOL *This, IN CHAR16 Char, IN CONST EFI_FONT_DISPLAY_INFO *StringInfo, OUT EFI_IMAGE_OUTPUT **Blt, OUT UINTN *Baseline OPTIONAL)
 
EFI_STATUS EFIAPI HiiGetFontInfo (IN CONST EFI_HII_FONT_PROTOCOL *This, IN OUT EFI_FONT_HANDLE *FontHandle, IN CONST EFI_FONT_DISPLAY_INFO *StringInfoIn, OPTIONAL OUT EFI_FONT_DISPLAY_INFO **StringInfoOut, IN CONST EFI_STRING String OPTIONAL)
 
EFI_HII_IMAGE_BLOCK * GetImageIdOrAddress (IN EFI_HII_IMAGE_BLOCK *ImageBlocks, IN OUT EFI_IMAGE_ID *ImageId)
 
HII_DATABASE_PACKAGE_LIST_INSTANCELocatePackageList (IN LIST_ENTRY *Database, IN EFI_HII_HANDLE PackageList)
 
EFI_STATUS IGetImage (IN LIST_ENTRY *Database, IN EFI_HII_HANDLE PackageList, IN EFI_IMAGE_ID ImageId, OUT EFI_IMAGE_INPUT *Image, IN BOOLEAN BitmapOnly)
 
EFI_HII_IMAGE_DECODER_PROTOCOL * LocateHiiImageDecoder (UINT8 BlockType)
 
EFI_STATUS EFIAPI HiiNewImage (IN CONST EFI_HII_IMAGE_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, OUT EFI_IMAGE_ID *ImageId, IN CONST EFI_IMAGE_INPUT *Image)
 
EFI_STATUS EFIAPI HiiGetImage (IN CONST EFI_HII_IMAGE_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, IN EFI_IMAGE_ID ImageId, OUT EFI_IMAGE_INPUT *Image)
 
EFI_STATUS EFIAPI HiiSetImage (IN CONST EFI_HII_IMAGE_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, IN EFI_IMAGE_ID ImageId, IN CONST EFI_IMAGE_INPUT *Image)
 
EFI_STATUS EFIAPI HiiDrawImage (IN CONST EFI_HII_IMAGE_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)
 
EFI_STATUS EFIAPI HiiDrawImageId (IN CONST EFI_HII_IMAGE_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)
 
EFI_STATUS EFIAPI HiiNewImageEx (IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, OUT EFI_IMAGE_ID *ImageId, IN CONST EFI_IMAGE_INPUT *Image)
 
EFI_STATUS EFIAPI HiiGetImageEx (IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, IN EFI_IMAGE_ID ImageId, OUT EFI_IMAGE_INPUT *Image)
 
EFI_STATUS EFIAPI HiiSetImageEx (IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, IN EFI_IMAGE_ID ImageId, IN CONST EFI_IMAGE_INPUT *Image)
 
EFI_STATUS EFIAPI HiiDrawImageEx (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)
 
EFI_STATUS EFIAPI HiiDrawImageIdEx (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)
 
EFI_STATUS EFIAPI HiiGetImageInfo (IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, IN EFI_IMAGE_ID ImageId, OUT EFI_IMAGE_OUTPUT *Image)
 
EFI_STATUS EFIAPI HiiNewString (IN CONST EFI_HII_STRING_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, OUT EFI_STRING_ID *StringId, IN CONST CHAR8 *Language, IN CONST CHAR16 *LanguageName, OPTIONAL IN CONST EFI_STRING String, IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL)
 
EFI_STATUS EFIAPI InternalHiiGetString (IN CONST EFI_HII_STRING_PROTOCOL *This, IN CONST CHAR8 *Language, IN EFI_HII_HANDLE PackageList, IN EFI_STRING_ID StringId, OUT EFI_STRING String, IN OUT UINTN *StringSize, OUT EFI_FONT_INFO **StringFontInfo OPTIONAL)
 
EFI_STATUS EFIAPI InternalHiiSetString (IN CONST EFI_HII_STRING_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, IN EFI_STRING_ID StringId, IN CONST CHAR8 *Language, IN CONST EFI_STRING String, IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL)
 
EFI_STATUS EFIAPI HiiGetLanguages (IN CONST EFI_HII_STRING_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, IN OUT CHAR8 *Languages, IN OUT UINTN *LanguagesSize)
 
EFI_STATUS EFIAPI HiiGetSecondaryLanguages (IN CONST EFI_HII_STRING_PROTOCOL *This, IN EFI_HII_HANDLE PackageList, IN CONST CHAR8 *PrimaryLanguage, IN OUT CHAR8 *SecondaryLanguages, IN OUT UINTN *SecondaryLanguagesSize)
 
EFI_STATUS EFIAPI HiiNewPackageList (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList, IN CONST EFI_HANDLE DriverHandle, OPTIONAL OUT EFI_HII_HANDLE *Handle)
 
EFI_STATUS EFIAPI HiiRemovePackageList (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN EFI_HII_HANDLE Handle)
 
EFI_STATUS EFIAPI HiiUpdatePackageList (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN EFI_HII_HANDLE Handle, IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList)
 
EFI_STATUS EFIAPI HiiListPackageLists (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN UINT8 PackageType, IN CONST EFI_GUID *PackageGuid, IN OUT UINTN *HandleBufferLength, OUT EFI_HII_HANDLE *Handle)
 
EFI_STATUS EFIAPI HiiExportPackageLists (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN EFI_HII_HANDLE Handle, IN OUT UINTN *BufferSize, OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer)
 
EFI_STATUS EFIAPI HiiRegisterPackageNotify (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN UINT8 PackageType, IN CONST EFI_GUID *PackageGuid, IN CONST EFI_HII_DATABASE_NOTIFY PackageNotifyFn, IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType, OUT EFI_HANDLE *NotifyHandle)
 
EFI_STATUS EFIAPI HiiUnregisterPackageNotify (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN EFI_HANDLE NotificationHandle)
 
EFI_STATUS EFIAPI HiiFindKeyboardLayouts (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN OUT UINT16 *KeyGuidBufferLength, OUT EFI_GUID *KeyGuidBuffer)
 
EFI_STATUS EFIAPI HiiGetKeyboardLayout (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN CONST EFI_GUID *KeyGuid, IN OUT UINT16 *KeyboardLayoutLength, OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout)
 
EFI_STATUS EFIAPI HiiSetKeyboardLayout (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN CONST EFI_GUID *KeyGuid)
 
EFI_STATUS EFIAPI HiiGetPackageListHandle (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN EFI_HII_HANDLE PackageListHandle, OUT EFI_HANDLE *DriverHandle)
 
EFI_STATUS EFIAPI HiiConfigRoutingExtractConfig (IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
 
EFI_STATUS EFIAPI HiiConfigRoutingExportConfig (IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This, OUT EFI_STRING *Results)
 
EFI_STATUS EFIAPI HiiConfigRoutingRouteConfig (IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
 
EFI_STATUS EFIAPI HiiBlockToConfig (IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This, IN CONST EFI_STRING ConfigRequest, IN CONST UINT8 *Block, IN CONST UINTN BlockSize, OUT EFI_STRING *Config, OUT EFI_STRING *Progress)
 
EFI_STATUS EFIAPI HiiConfigToBlock (IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This, IN CONST EFI_STRING ConfigResp, IN OUT UINT8 *Block, IN OUT UINTN *BlockSize, OUT EFI_STRING *Progress)
 
EFI_STATUS EFIAPI HiiGetAltCfg (IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This, IN CONST EFI_STRING Configuration, IN CONST EFI_GUID *Guid, IN CONST EFI_STRING Name, IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN CONST UINT16 *AltCfgId, OUT EFI_STRING *AltCfgResp)
 
EFI_STATUS EFIAPI EfiConfigKeywordHandlerSetData (IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This, IN CONST EFI_STRING KeywordString, OUT EFI_STRING *Progress, OUT UINT32 *ProgressErr)
 
EFI_STATUS EFIAPI EfiConfigKeywordHandlerGetData (IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This, IN CONST EFI_STRING NameSpaceId, OPTIONAL IN CONST EFI_STRING KeywordString, OPTIONAL OUT EFI_STRING *Progress, OUT UINT32 *ProgressErr, OUT EFI_STRING *Results)
 
BOOLEAN HiiCompareLanguage (IN CHAR8 *Language1, IN CHAR8 *Language2)
 
CHAR8 * GetSupportedLanguages (IN EFI_HII_HANDLE HiiHandle)
 
EFI_STATUS HiiGetDatabaseInfo (IN CONST EFI_HII_DATABASE_PROTOCOL *This)
 
EFI_STATUS HiiGetConfigRespInfo (IN CONST EFI_HII_DATABASE_PROTOCOL *This)
 

Variables

EFI_LOCK mHiiDatabaseLock
 
EFI_EVENT gHiiKeyboardLayoutChanged
 
BOOLEAN gExportAfterReadyToBoot
 

Detailed Description

Private structures definitions in HiiDatabase.

Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file HiiDatabase.h.

Macro Definition Documentation

◆ BITMAP_LEN_1_BIT

#define BITMAP_LEN_1_BIT ( Width,
Height )
Value:
(((UINT32) (Width) + 7) / 8 * (UINT32) (Height))

Definition at line 54 of file HiiDatabase.h.

◆ BITMAP_LEN_24_BIT

#define BITMAP_LEN_24_BIT ( Width,
Height )
Value:
((UINT32) (Width) * (UINT32) (Height) * 3)

Definition at line 57 of file HiiDatabase.h.

◆ BITMAP_LEN_4_BIT

#define BITMAP_LEN_4_BIT ( Width,
Height )
Value:
(((UINT32) (Width) + 1) / 2 * (UINT32) (Height))

Definition at line 55 of file HiiDatabase.h.

◆ BITMAP_LEN_8_BIT

#define BITMAP_LEN_8_BIT ( Width,
Height )
Value:
((UINT32) (Width) * (UINT32) (Height))

Definition at line 56 of file HiiDatabase.h.

◆ CONFIG_KEYWORD_HANDLER_DATABASE_PRIVATE_DATA_FROM_THIS

#define CONFIG_KEYWORD_HANDLER_DATABASE_PRIVATE_DATA_FROM_THIS ( a)
Value:
CR (a, \
ConfigKeywordHandler, \
)
#define HII_DATABASE_PRIVATE_DATA_SIGNATURE

Definition at line 367 of file HiiDatabase.h.

◆ CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS

#define CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS ( a)
Value:

Definition at line 360 of file HiiDatabase.h.

◆ EFI_HII_VARSTORE_BUFFER

#define EFI_HII_VARSTORE_BUFFER   0

Definition at line 119 of file HiiDatabase.h.

◆ EFI_HII_VARSTORE_EFI_VARIABLE

#define EFI_HII_VARSTORE_EFI_VARIABLE   2

Definition at line 121 of file HiiDatabase.h.

◆ EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER

#define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER   3

Definition at line 122 of file HiiDatabase.h.

◆ EFI_HII_VARSTORE_NAME_VALUE

#define EFI_HII_VARSTORE_NAME_VALUE   1

Definition at line 120 of file HiiDatabase.h.

◆ EFI_KEYWORD_FILTER_BUFFER

#define EFI_KEYWORD_FILTER_BUFFER   0x10

Definition at line 129 of file HiiDatabase.h.

◆ EFI_KEYWORD_FILTER_NUMERIC

#define EFI_KEYWORD_FILTER_NUMERIC   0x20

Definition at line 130 of file HiiDatabase.h.

◆ EFI_KEYWORD_FILTER_NUMERIC_1

#define EFI_KEYWORD_FILTER_NUMERIC_1   0x30

Definition at line 131 of file HiiDatabase.h.

◆ EFI_KEYWORD_FILTER_NUMERIC_2

#define EFI_KEYWORD_FILTER_NUMERIC_2   0x40

Definition at line 132 of file HiiDatabase.h.

◆ EFI_KEYWORD_FILTER_NUMERIC_4

#define EFI_KEYWORD_FILTER_NUMERIC_4   0x50

Definition at line 133 of file HiiDatabase.h.

◆ EFI_KEYWORD_FILTER_NUMERIC_8

#define EFI_KEYWORD_FILTER_NUMERIC_8   0x60

Definition at line 134 of file HiiDatabase.h.

◆ EFI_KEYWORD_FILTER_READONY

#define EFI_KEYWORD_FILTER_READONY   0x01

Definition at line 127 of file HiiDatabase.h.

◆ EFI_KEYWORD_FILTER_REAWRITE

#define EFI_KEYWORD_FILTER_REAWRITE   0x02

Definition at line 128 of file HiiDatabase.h.

◆ HII_DATABASE_DATABASE_PRIVATE_DATA_FROM_THIS

#define HII_DATABASE_DATABASE_PRIVATE_DATA_FROM_THIS ( a)
Value:

Definition at line 353 of file HiiDatabase.h.

◆ HII_DATABASE_NOTIFY_SIGNATURE

#define HII_DATABASE_NOTIFY_SIGNATURE   SIGNATURE_32 ('h','i','d','n')

Definition at line 292 of file HiiDatabase.h.

◆ HII_DATABASE_PRIVATE_DATA_SIGNATURE

#define HII_DATABASE_PRIVATE_DATA_SIGNATURE   SIGNATURE_32 ('H', 'i', 'D', 'p')

Definition at line 304 of file HiiDatabase.h.

◆ HII_DATABASE_RECORD_SIGNATURE

#define HII_DATABASE_RECORD_SIGNATURE   SIGNATURE_32 ('h','i','d','r')

Definition at line 282 of file HiiDatabase.h.

◆ HII_FONT_DATABASE_PRIVATE_DATA_FROM_THIS

#define HII_FONT_DATABASE_PRIVATE_DATA_FROM_THIS ( a)
Value:

Definition at line 325 of file HiiDatabase.h.

◆ HII_FONT_INFO_SIGNATURE

#define HII_FONT_INFO_SIGNATURE   SIGNATURE_32 ('h','l','f','i')

Definition at line 207 of file HiiDatabase.h.

◆ HII_FONT_PACKAGE_SIGNATURE

#define HII_FONT_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','i','f','p')

Definition at line 188 of file HiiDatabase.h.

◆ HII_FORMSET_STORAGE_SIGNATURE

#define HII_FORMSET_STORAGE_SIGNATURE   SIGNATURE_32 ('H', 'S', 'T', 'G')

Definition at line 136 of file HiiDatabase.h.

◆ HII_GLOBAL_FONT_INFO_SIGNATURE

#define HII_GLOBAL_FONT_INFO_SIGNATURE   SIGNATURE_32 ('h','g','f','i')

Definition at line 215 of file HiiDatabase.h.

◆ HII_GLYPH_INFO_SIGNATURE

#define HII_GLYPH_INFO_SIGNATURE   SIGNATURE_32 ('h','g','i','s')

Definition at line 199 of file HiiDatabase.h.

◆ HII_GUID_PACKAGE_SIGNATURE

#define HII_GUID_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','i','g','p')

Definition at line 251 of file HiiDatabase.h.

◆ HII_HANDLE_SIGNATURE

#define HII_HANDLE_SIGNATURE   SIGNATURE_32 ('h','i','h','l')

Definition at line 274 of file HiiDatabase.h.

◆ HII_IFR_PACKAGE_SIGNATURE

#define HII_IFR_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','f','r','p')

Definition at line 167 of file HiiDatabase.h.

◆ HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS

#define HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS ( a)
Value:

Definition at line 332 of file HiiDatabase.h.

◆ HII_IMAGE_EX_DATABASE_PRIVATE_DATA_FROM_THIS

#define HII_IMAGE_EX_DATABASE_PRIVATE_DATA_FROM_THIS ( a)
Value:

Definition at line 339 of file HiiDatabase.h.

◆ HII_KB_LAYOUT_PACKAGE_SIGNATURE

#define HII_KB_LAYOUT_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','k','l','p')

Definition at line 241 of file HiiDatabase.h.

◆ HII_PIXEL_MASK

#define HII_PIXEL_MASK   0x80

Definition at line 228 of file HiiDatabase.h.

◆ HII_S_FONT_PACKAGE_SIGNATURE

#define HII_S_FONT_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','s','f','p')

Definition at line 178 of file HiiDatabase.h.

◆ HII_STRING_DATABASE_PRIVATE_DATA_FROM_THIS

#define HII_STRING_DATABASE_PRIVATE_DATA_FROM_THIS ( a)
Value:

Definition at line 346 of file HiiDatabase.h.

◆ HII_STRING_PACKAGE_SIGNATURE

#define HII_STRING_PACKAGE_SIGNATURE   SIGNATURE_32 ('h','i','s','p')

Definition at line 153 of file HiiDatabase.h.

◆ MAX_FONT_NAME_LEN

#define MAX_FONT_NAME_LEN   256

Definition at line 46 of file HiiDatabase.h.

◆ MAX_STRING_LENGTH

#define MAX_STRING_LENGTH   1024

Definition at line 45 of file HiiDatabase.h.

◆ NARROW_BASELINE

#define NARROW_BASELINE   15

Definition at line 47 of file HiiDatabase.h.

◆ NARROW_GLYPH

#define NARROW_GLYPH   0x40

Definition at line 52 of file HiiDatabase.h.

◆ PROPORTIONAL_GLYPH

#define PROPORTIONAL_GLYPH   0x80

Definition at line 51 of file HiiDatabase.h.

◆ REPLACE_UNKNOWN_GLYPH

#define REPLACE_UNKNOWN_GLYPH   0xFFFD

Definition at line 50 of file HiiDatabase.h.

◆ SYS_FONT_INFO_MASK

#define SYS_FONT_INFO_MASK   0x37

Definition at line 49 of file HiiDatabase.h.

◆ WIDE_BASELINE

#define WIDE_BASELINE   14

Definition at line 48 of file HiiDatabase.h.

Typedef Documentation

◆ HII_DATABASE_NOTIFY

◆ HII_DATABASE_PACKAGE_LIST_INSTANCE

◆ HII_DATABASE_PRIVATE_DATA

◆ HII_DATABASE_RECORD

◆ HII_FONT_INFO

typedef struct _HII_FONT_INFO HII_FONT_INFO

◆ HII_FONT_PACKAGE_INSTANCE

◆ HII_GLOBAL_FONT_INFO

◆ HII_GLYPH_INFO

◆ HII_GUID_PACKAGE_INSTANCE

◆ HII_IFR_PACKAGE_INSTANCE

◆ HII_IMAGE_PACKAGE_INSTANCE

◆ HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE

◆ HII_SIMPLE_FONT_PACKAGE_INSTANCE

◆ HII_STRING_PACKAGE_INSTANCE

Enumeration Type Documentation

◆ DEFAULT_VALUE_TYPE

Enumerator
DefaultValueFromDefault 
DefaultValueFromOtherDefault 
DefaultValueFromFlag 
DefaultValueFromOpcode 

Definition at line 98 of file HiiDatabase.h.

Function Documentation

◆ EfiConfigKeywordHandlerGetData()

EFI_STATUS EFIAPI EfiConfigKeywordHandlerGetData ( IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL * This,
IN CONST EFI_STRING NameSpaceId,
OPTIONAL IN CONST EFI_STRING KeywordString,
OPTIONAL OUT EFI_STRING * Progress,
OUT UINT32 * ProgressErr,
OUT EFI_STRING * Results )

This function accepts a <MultiKeywordRequest> formatted string, finds the underlying keyword owners, creates a <MultiConfigRequest> string from it and forwards it to the EFI_HII_ROUTING_PROTOCOL.ExtractConfig function.

If there is an issue in resolving the contents of the KeywordString, then the function returns an EFI_INVALID_PARAMETER and also set the Progress and ProgressErr with the appropriate information about where the issue occurred and additional data about the nature of the issue.

In the case when KeywordString is NULL, or contains multiple keywords, or when EFI_NOT_FOUND is generated while processing the keyword elements, the Results string contains values returned for all keywords processed prior to the keyword generating the error but no values for the keyword with error or any following keywords.

Parameters
ThisPointer to the EFI_KEYWORD_HANDLER _PROTOCOL instance.
NameSpaceIdA null-terminated string containing the platform configuration language to search through in the system. If a NULL is passed in, then it is assumed that any platform configuration language with the prefix of "x-UEFI-" are searched.
KeywordStringA null-terminated string in <MultiKeywordRequest> format. If a NULL is passed in the KeywordString field, all of the known keywords in the system for the NameSpaceId specified are returned in the Results field.
ProgressOn return, points to a character in the KeywordString. Points to the string's NULL terminator if the request was successful. Points to the most recent '&' before the first failing name / value pair (or the beginning of the string if the failure is in the first name / value pair) if the request was not successful.
ProgressErrIf during the processing of the KeywordString there was a failure, this parameter gives additional information about the possible source of the problem. See the definitions in SetData() for valid value definitions.
ResultsA null-terminated string in <MultiKeywordResp> format is returned which has all the values filled in for the keywords in the KeywordString. This is a callee-allocated field, and must be freed by the caller after being used.
Return values
EFI_SUCCESSThe specified action was completed successfully.
EFI_INVALID_PARAMETEROne or more of the following are TRUE: 1.Progress, ProgressErr, or Results is NULL. 2.Parsing of the KeywordString resulted in an error. See Progress and ProgressErr for more data.
EFI_NOT_FOUNDAn element of the KeywordString was not found. See ProgressErr for more data.
EFI_NOT_FOUNDThe NamespaceId specified was not found. See ProgressErr for more data.
EFI_OUT_OF_RESOURCESRequired system resources could not be allocated. See ProgressErr for more data.
EFI_ACCESS_DENIEDThe action violated system policy. See ProgressErr for more data.
EFI_DEVICE_ERRORAn unexpected system error occurred. See ProgressErr for more data.

Definition at line 3197 of file ConfigKeywordHandler.c.

◆ EfiConfigKeywordHandlerSetData()

EFI_STATUS EFIAPI EfiConfigKeywordHandlerSetData ( IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL * This,
IN CONST EFI_STRING KeywordString,
OUT EFI_STRING * Progress,
OUT UINT32 * ProgressErr )

This function accepts a <MultiKeywordResp> formatted string, finds the associated keyword owners, creates a <MultiConfigResp> string from it and forwards it to the EFI_HII_ROUTING_PROTOCOL.RouteConfig function.

If there is an issue in resolving the contents of the KeywordString, then the function returns an error and also sets the Progress and ProgressErr with the appropriate information about where the issue occurred and additional data about the nature of the issue.

In the case when KeywordString containing multiple keywords, when an EFI_NOT_FOUND error is generated during processing the second or later keyword element, the system storage associated with earlier keywords is not modified. All elements of the KeywordString must successfully pass all tests for format and access prior to making any modifications to storage.

In the case when EFI_DEVICE_ERROR is returned from the processing of a KeywordString containing multiple keywords, the state of storage associated with earlier keywords is undefined.

Parameters
ThisPointer to the EFI_KEYWORD_HANDLER _PROTOCOL instance.
KeywordStringA null-terminated string in <MultiKeywordResp> format.
ProgressOn return, points to a character in the KeywordString. Points to the string's NULL terminator if the request was successful. Points to the most recent '&' before the first failing name / value pair (or the beginning of the string if the failure is in the first name / value pair) if the request was not successful.
ProgressErrIf during the processing of the KeywordString there was a failure, this parameter gives additional information about the possible source of the problem. The various errors are defined in "Related Definitions" below.
Return values
EFI_SUCCESSThe specified action was completed successfully.
EFI_INVALID_PARAMETEROne or more of the following are TRUE: 1. KeywordString is NULL. 2. Parsing of the KeywordString resulted in an error. See Progress and ProgressErr for more data.
EFI_NOT_FOUNDAn element of the KeywordString was not found. See ProgressErr for more data.
EFI_OUT_OF_RESOURCESRequired system resources could not be allocated. See ProgressErr for more data.
EFI_ACCESS_DENIEDThe action violated system policy. See ProgressErr for more data.
EFI_DEVICE_ERRORAn unexpected system error occurred. See ProgressErr for more data.

Definition at line 2890 of file ConfigKeywordHandler.c.

◆ ExportFormPackages()

EFI_STATUS ExportFormPackages ( IN HII_DATABASE_PRIVATE_DATA * Private,
IN EFI_HII_HANDLE Handle,
IN HII_DATABASE_PACKAGE_LIST_INSTANCE * PackageList,
IN UINTN UsedSize,
IN UINTN BufferSize,
IN OUT VOID * Buffer,
IN OUT UINTN * ResultSize )

This function exports Form packages to a buffer. This is a internal function.

Parameters
PrivateHii database private structure.
HandleIdentification of a package list.
PackageListPointer to a package list which will be exported.
UsedSizeThe length of buffer be used.
BufferSizeLength of the Buffer.
BufferAllocated space for storing exported data.
ResultSizeThe size of the already exported content of this package list.
Return values
EFI_SUCCESSForm Packages are exported successfully.
EFI_INVALID_PARAMETERAny input parameter is invalid.

Definition at line 1197 of file Database.c.

◆ FindGlyphBlock()

EFI_STATUS FindGlyphBlock ( IN HII_FONT_PACKAGE_INSTANCE * FontPackage,
IN CHAR16 CharValue,
OUT UINT8 ** GlyphBuffer,
OPTIONAL OUT EFI_HII_GLYPH_INFO * Cell,
OPTIONAL OUT UINTN *GlyphBufferLen OPTIONAL )

Parse all glyph blocks to find a glyph block specified by CharValue. If CharValue = (CHAR16) (-1), collect all default character cell information within this font package and backup its information.

Parameters
FontPackageHii string package instance.
CharValueUnicode character value, which identifies a glyph block.
GlyphBufferOutput the corresponding bitmap data of the found block. It is the caller's responsibility to free this buffer.
CellOutput cell information of the encoded bitmap.
GlyphBufferLenIf not NULL, output the length of GlyphBuffer.
Return values
EFI_SUCCESSThe bitmap data is retrieved successfully.
EFI_NOT_FOUNDThe specified CharValue does not exist in current database.
EFI_OUT_OF_RESOURCESThe system is out of resources to accomplish the task.

Definition at line 658 of file Font.c.

◆ FindStringBlock()

EFI_STATUS FindStringBlock ( IN HII_DATABASE_PRIVATE_DATA * Private,
IN HII_STRING_PACKAGE_INSTANCE * StringPackage,
IN EFI_STRING_ID StringId,
OUT UINT8 * BlockType,
OPTIONAL OUT UINT8 ** StringBlockAddr,
OPTIONAL OUT UINTN * StringTextOffset,
OPTIONAL OUT EFI_STRING_ID * LastStringId,
OPTIONAL OUT EFI_STRING_ID *StartStringId OPTIONAL )

Parse all string blocks to find a String block specified by StringId. If StringId = (EFI_STRING_ID) (-1), find out all EFI_HII_SIBT_FONT blocks within this string package and backup its information. If LastStringId is specified, the string id of last string block will also be output. If StringId = 0, output the string id of last string block (EFI_HII_SIBT_STRING).

Parameters
PrivateHii database private structure.
StringPackageHii string package instance.
StringIdThe string's id, which is unique within PackageList.
BlockTypeOutput the block type of found string block.
StringBlockAddrOutput the block address of found string block.
StringTextOffsetOffset, relative to the found block address, of the string text information.
LastStringIdOutput the last string id when StringId = 0 or StringId = -1.
StartStringIdThe first id in the skip block which StringId in the block.
Return values
EFI_SUCCESSThe string text and font is retrieved successfully.
EFI_NOT_FOUNDThe specified text or font info can not be found out.
EFI_OUT_OF_RESOURCESThe system is out of resources to accomplish the task.

Definition at line 255 of file String.c.

◆ GenerateSubStr()

VOID GenerateSubStr ( IN CONST EFI_STRING String,
IN UINTN BufferLen,
IN VOID * Buffer,
IN UINT8 Flag,
OUT EFI_STRING * SubStr )

Generate a sub string then output it.

This is a internal function.

Parameters
StringA constant string which is the prefix of the to be generated string, e.g. GUID=
BufferLenThe length of the Buffer in bytes.
BufferPoints to a buffer which will be converted to be the content of the generated string.
FlagIf 1, the buffer contains data for the value of GUID or PATH stored in UINT8 *; if 2, the buffer contains unicode string for the value of NAME; if 3, the buffer contains other data.
SubStrPoints to the output string. It's caller's responsibility to free this buffer.

Definition at line 222 of file ConfigRouting.c.

◆ GetImageIdOrAddress()

EFI_HII_IMAGE_BLOCK * GetImageIdOrAddress ( IN EFI_HII_IMAGE_BLOCK * ImageBlocks,
IN OUT EFI_IMAGE_ID * ImageId )

Get the image id of last image block: EFI_HII_IIBT_END_BLOCK when input ImageId is zero, otherwise return the address of the corresponding image block with identifier specified by ImageId.

This is a internal function.

Parameters
ImageBlocksPoints to the beginning of a series of image blocks stored in order.
ImageIdIf input ImageId is 0, output the image id of the EFI_HII_IIBT_END_BLOCK; else use this id to find its corresponding image block address.
Returns
The image block address when input ImageId is not zero; otherwise return NULL.

Get the imageid of last image block: EFI_HII_IIBT_END_BLOCK when input ImageId is zero, otherwise return the address of the corresponding image block with identifier specified by ImageId.

This is a internal function.

Parameters
ImageBlocksPoints to the beginning of a series of image blocks stored in order.
ImageIdIf input ImageId is 0, output the image id of the EFI_HII_IIBT_END_BLOCK; else use this id to find its corresponding image block address.
Returns
The image block address when input ImageId is not zero; otherwise return NULL.

Definition at line 29 of file Image.c.

◆ GetSupportedLanguages()

CHAR8 * GetSupportedLanguages ( IN EFI_HII_HANDLE HiiHandle)

Retrieves a pointer to a Null-terminated ASCII string containing the list of languages that an HII handle in the HII Database supports. The returned string is allocated using AllocatePool(). The caller is responsible for freeing the returned string using FreePool(). The format of the returned string follows the language format assumed the HII Database.

If HiiHandle is NULL, then ASSERT().

Parameters
[in]HiiHandleA handle that was previously registered in the HII Database.
Return values
NULLHiiHandle is not registered in the HII database
NULLThere are not enough resources available to retrieve the supported languages.
NULLThe list of supported languages could not be retrieved.
OtherA pointer to the Null-terminated ASCII string of supported languages.

Retrieves a pointer to the a Null-terminated ASCII string containing the list of languages that an HII handle in the HII Database supports. The returned string is allocated using AllocatePool(). The caller is responsible for freeing the returned string using FreePool(). The format of the returned string follows the language format assumed the HII Database.

If HiiHandle is NULL, then ASSERT().

Parameters
[in]HiiHandleA handle that was previously registered in the HII Database.
Return values
NULLHiiHandle is not registered in the HII database
NULLThere are not enough resources available to retrieve the supported languages.
NULLThe list of supported languages could not be retrieved.
OtherA pointer to the Null-terminated ASCII string of supported languages.

Definition at line 1316 of file ConfigRouting.c.

◆ GetSystemFont()

EFI_STATUS GetSystemFont ( IN HII_DATABASE_PRIVATE_DATA * Private,
OUT EFI_FONT_DISPLAY_INFO ** FontInfo,
OUT UINTN *FontInfoSize OPTIONAL )

Retrieve system default font and color.

Parameters
PrivateHII database driver private data.
FontInfoPoints to system default font output-related information. It's caller's responsibility to free this buffer.
FontInfoSizeIf not NULL, output the size of buffer FontInfo.
Return values
EFI_SUCCESSCell information is added to the GlyphInfoList.
EFI_OUT_OF_RESOURCESThe system is out of resources to accomplish the task.
EFI_INVALID_PARAMETERAny input parameter is invalid.

Definition at line 993 of file Font.c.

◆ HiiBlockToConfig()

EFI_STATUS EFIAPI HiiBlockToConfig ( IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL * This,
IN CONST EFI_STRING ConfigRequest,
IN CONST UINT8 * Block,
IN CONST UINTN BlockSize,
OUT EFI_STRING * Config,
OUT EFI_STRING * Progress )

This helper function is to be called by drivers to map configuration data stored in byte array ("block") formats such as UEFI Variables into current configuration strings.

Parameters
ThisA pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
ConfigRequestA null-terminated Unicode string in <ConfigRequest> format.
BlockArray of bytes defining the block's configuration.
BlockSizeLength in bytes of Block.
ConfigFilled-in configuration string. String allocated by the function. Returned only if call is successful.
ProgressA pointer to a string filled in with the offset of the most recent & before the first failing name/value pair (or the beginning of the string if the failure is in the first name / value pair) or the terminating NULL if all was successful.
Return values
EFI_SUCCESSThe request succeeded. Progress points to the null terminator at the end of the ConfigRequest string.
EFI_OUT_OF_RESOURCESNot enough memory to allocate Config. Progress points to the first character of ConfigRequest.
EFI_INVALID_PARAMETERPassing in a NULL for the ConfigRequest or Block parameter would result in this type of error. Progress points to the first character of ConfigRequest.
EFI_NOT_FOUNDTarget for the specified routing data was not found. Progress points to the "G" in "GUID" of the errant routing data.
EFI_DEVICE_ERRORBlock not large enough. Progress undefined.
EFI_INVALID_PARAMETEREncountered non <BlockName> formatted string. Block is left updated and Progress points at the '&' preceding the first non-<BlockName>.

This helper function is to be called by drivers to map configuration data stored in byte array ("block") formats such as UEFI Variables into current configuration strings.

Parameters
ThisA pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
ConfigRequestA null-terminated Unicode string in <ConfigRequest> format.
BlockArray of bytes defining the block's configuration.
BlockSizeLength in bytes of Block.
ConfigFilled-in configuration string. String allocated by the function. Returned only if call is successful. It is <ConfigResp> string format.
ProgressA pointer to a string filled in with the offset of the most recent & before the first failing name/value pair (or the beginning of the string if the failure is in the first name / value pair) or the terminating NULL if all was successful.
Return values
EFI_SUCCESSThe request succeeded. Progress points to the null terminator at the end of the ConfigRequest string.
EFI_OUT_OF_RESOURCESNot enough memory to allocate Config. Progress points to the first character of ConfigRequest.
EFI_INVALID_PARAMETERPassing in a NULL for the ConfigRequest or Block parameter would result in this type of error. Progress points to the first character of ConfigRequest.
EFI_DEVICE_ERRORBlock not large enough. Progress undefined.
EFI_INVALID_PARAMETEREncountered non <BlockName> formatted string. Block is left updated and Progress points at the "&" preceding the first non-<BlockName>.

Definition at line 5645 of file ConfigRouting.c.

◆ HiiCompareLanguage()

BOOLEAN HiiCompareLanguage ( IN CHAR8 * Language1,
IN CHAR8 * Language2 )

Compare whether two names of languages are identical.

Parameters
Language1Name of language 1 from StringPackage
Language2Name of language 2 to be compared with language 1.
Return values
TRUEsame
FALSEnot same

Definition at line 2071 of file String.c.

◆ HiiConfigRoutingExportConfig()

EFI_STATUS EFIAPI HiiConfigRoutingExportConfig ( IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL * This,
OUT EFI_STRING * Results )

This function allows the caller to request the current configuration for the entirety of the current HII database and returns the data in a null-terminated Unicode string.

Parameters
ThisA pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
ResultsNull-terminated Unicode string in <MultiConfigAltResp> format which has all values filled in for the entirety of the current HII database. String to be allocated by the called function. De-allocation is up to the caller.
Return values
EFI_SUCCESSThe Results string is filled with the values corresponding to all requested names.
EFI_OUT_OF_RESOURCESNot enough memory to store the parts of the results that must be stored awaiting possible future protocols.
EFI_INVALID_PARAMETERFor example, passing in a NULL for the Results parameter would result in this type of error.

Definition at line 5207 of file ConfigRouting.c.

◆ HiiConfigRoutingExtractConfig()

EFI_STATUS EFIAPI HiiConfigRoutingExtractConfig ( IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL * This,
IN CONST EFI_STRING Request,
OUT EFI_STRING * Progress,
OUT EFI_STRING * Results )

This function allows a caller to extract the current configuration for one or more named elements from one or more drivers.

Parameters
ThisA pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
RequestA null-terminated Unicode string in <MultiConfigRequest> format.
ProgressOn return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent & before the first failing name / value pair (or the beginning of the string if the failure is in the first name / value pair) if the request was not successful.
ResultsNull-terminated Unicode string in <MultiConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values
EFI_SUCCESSThe Results string is filled with the values corresponding to all requested names.
EFI_OUT_OF_RESOURCESNot enough memory to store the parts of the results that must be stored awaiting possible future protocols.
EFI_NOT_FOUNDRouting data doesn't match any known driver. Progress set to the "G" in "GUID" of the routing header that doesn't match. Note: There is no requirement that all routing data be validated before any configuration extraction.
EFI_INVALID_PARAMETERFor example, passing in a NULL for the Request parameter would result in this type of error. The Progress parameter is set to NULL.
EFI_INVALID_PARAMETERIllegal syntax. Progress set to most recent & before the error or the beginning of the string.
EFI_INVALID_PARAMETERUnknown name. Progress points to the & before the name in question.

This function allows a caller to extract the current configuration for one or more named elements from one or more drivers.

Parameters
ThisA pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
RequestA null-terminated Unicode string in <MultiConfigRequest> format.
ProgressOn return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent & before the first failing name / value pair (or the beginning of the string if the failure is in the first name / value pair) if the request was not successful.
ResultsNull-terminated Unicode string in <MultiConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values
EFI_SUCCESSThe Results string is filled with the values corresponding to all requested names.
EFI_OUT_OF_RESOURCESNot enough memory to store the parts of the results that must be stored awaiting possible future protocols.
EFI_NOT_FOUNDRouting data doesn't match any known driver. Progress set to the "G" in "GUID" of the routing header that doesn't match. Note: There is no requirement that all routing data be validated before any configuration extraction.
EFI_INVALID_PARAMETERFor example, passing in a NULL for the Request parameter would result in this type of error. The Progress parameter is set to NULL.
EFI_INVALID_PARAMETERIllegal syntax. Progress set to most recent & before the error or the beginning of the string.
EFI_INVALID_PARAMETERThe ExtractConfig function of the underlying HII Configuration Access Protocol returned EFI_INVALID_PARAMETER. Progress set to most recent & before the error or the beginning of the string.

Definition at line 4811 of file ConfigRouting.c.

◆ HiiConfigRoutingRouteConfig()

EFI_STATUS EFIAPI HiiConfigRoutingRouteConfig ( IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL * This,
IN CONST EFI_STRING Configuration,
OUT EFI_STRING * Progress )

This function processes the results of processing forms and routes it to the appropriate handlers or storage.

Parameters
ThisA pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
ConfigurationA null-terminated Unicode string in <MulltiConfigResp> format.
ProgressA pointer to a string filled in with the offset of the most recent & before the first failing name / value pair (or the beginning of the string if the failure is in the first name / value pair) or the terminating NULL if all was successful.
Return values
EFI_SUCCESSThe results have been distributed or are awaiting distribution.
EFI_OUT_OF_RESOURCESNot enough memory to store the parts of the results that must be stored awaiting possible future protocols.
EFI_INVALID_PARAMETERPassing in a NULL for the Configuration parameter would result in this type of error.
EFI_NOT_FOUNDTarget for the specified routing data was not found.

Definition at line 5414 of file ConfigRouting.c.

◆ HiiConfigToBlock()

EFI_STATUS EFIAPI HiiConfigToBlock ( IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL * This,
IN CONST EFI_STRING ConfigResp,
IN OUT UINT8 * Block,
IN OUT UINTN * BlockSize,
OUT EFI_STRING * Progress )

This helper function is to be called by drivers to map configuration strings to configurations stored in byte array ("block") formats such as UEFI Variables.

Parameters
ThisA pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
ConfigRespA null-terminated Unicode string in <ConfigResp> format.
BlockA possibly null array of bytes representing the current block. Only bytes referenced in the ConfigResp string in the block are modified. If this parameter is null or if the *BlockSize parameter is (on input) shorter than required by the Configuration string, only the BlockSize parameter is updated and an appropriate status (see below) is returned.
BlockSizeThe length of the Block in units of UINT8. On input, this is the size of the Block. On output, if successful, contains the largest index of the modified byte in the Block, or the required buffer size if the Block is not large enough.
ProgressOn return, points to an element of the ConfigResp string filled in with the offset of the most recent '&' before the first failing name / value pair (or the beginning of the string if the failure is in the first name / value pair) or the terminating NULL if all was successful.
Return values
EFI_SUCCESSThe request succeeded. Progress points to the null terminator at the end of the ConfigResp string.
EFI_OUT_OF_RESOURCESNot enough memory to allocate Config. Progress points to the first character of ConfigResp.
EFI_INVALID_PARAMETERPassing in a NULL for the ConfigResp or Block parameter would result in this type of error. Progress points to the first character of ConfigResp.
EFI_NOT_FOUNDTarget for the specified routing data was not found. Progress points to the "G" in "GUID" of the errant routing data.
EFI_INVALID_PARAMETEREncountered non <BlockName> formatted name / value pair. Block is left updated and Progress points at the '&' preceding the first non-<BlockName>.
EFI_BUFFER_TOO_SMALLBlock not large enough. Progress undefined. BlockSize is updated with the required buffer size.

This helper function is to be called by drivers to map configuration strings to configurations stored in byte array ("block") formats such as UEFI Variables.

Parameters
ThisA pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
ConfigRespA null-terminated Unicode string in <ConfigResp> format.
BlockA possibly null array of bytes representing the current block. Only bytes referenced in the ConfigResp string in the block are modified. If this parameter is null or if the *BlockSize parameter is (on input) shorter than required by the Configuration string, only the BlockSize parameter is updated and an appropriate status (see below) is returned.
BlockSizeThe length of the Block in units of UINT8. On input, this is the size of the Block. On output, if successful, contains the largest index of the modified byte in the Block, or the required buffer size if the Block is not large enough.
ProgressOn return, points to an element of the ConfigResp string filled in with the offset of the most recent '&' before the first failing name / value pair (or the beginning of the string if the failure is in the first name / value pair) or the terminating NULL if all was successful.
Return values
EFI_SUCCESSThe request succeeded. Progress points to the null terminator at the end of the ConfigResp string.
EFI_OUT_OF_RESOURCESNot enough memory to allocate Config. Progress points to the first character of ConfigResp.
EFI_INVALID_PARAMETERPassing in a NULL for the ConfigResp or Block parameter would result in this type of error. Progress points to the first character of ConfigResp.
EFI_INVALID_PARAMETEREncountered non <BlockName> formatted name / value pair. Block is left updated and Progress points at the '&' preceding the first non-<BlockName>.
EFI_BUFFER_TOO_SMALLBlock not large enough. Progress undefined. BlockSize is updated with the required buffer size.
EFI_NOT_FOUNDTarget for the specified routing data was not found. Progress points to the "G" in "GUID" of the errant routing data.

Definition at line 5964 of file ConfigRouting.c.

◆ HiiDrawImage()

EFI_STATUS EFIAPI HiiDrawImage ( IN CONST EFI_HII_IMAGE_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 )

This function renders an image to a bitmap or the screen using the specified color and options. It draws the image on an existing bitmap, allocates a new bitmap or uses the screen. The images can be clipped.

Parameters
ThisA pointer to the EFI_HII_IMAGE_PROTOCOL instance.
FlagsDescribes how the image is to be drawn.
ImagePoints to the image to be displayed.
BltIf 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.
BltXSpecifies the offset from the left and top edge of the output image of the first pixel in the image.
BltYSpecifies the offset from the left and top edge of the output image of the first pixel in the image.
Return values
EFI_SUCCESSThe image was successfully drawn.
EFI_OUT_OF_RESOURCESUnable to allocate an output buffer for Blt.
EFI_INVALID_PARAMETERThe Image or Blt was NULL.
EFI_INVALID_PARAMETERAny combination of Flags is invalid.

Definition at line 1274 of file Image.c.

◆ HiiDrawImageEx()

EFI_STATUS EFIAPI HiiDrawImageEx ( 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 to the display.

The prototype of this extension function is the same with EFI_HII_IMAGE_PROTOCOL.DrawImage(). This protocol invokes EFI_HII_IMAGE_PROTOCOL.DrawImage() implicitly.

Parameters
ThisA pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
FlagsDescribes how the image is to be drawn.
ImagePoints to the image to be displayed.
BltIf 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.
BltXSpecifies the offset from the left and top edge of the output image of the first pixel in the image.
BltYSpecifies the offset from the left and top edge of the output image of the first pixel in the image.
Return values
EFI_SUCCESSThe image was successfully drawn.
EFI_OUT_OF_RESOURCESUnable to allocate an output buffer for Blt.
EFI_INVALID_PARAMETERThe Image or Blt was NULL.

Definition at line 147 of file ImageEx.c.

◆ HiiDrawImageId()

EFI_STATUS EFIAPI HiiDrawImageId ( IN CONST EFI_HII_IMAGE_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 renders an image to a bitmap or the screen using the specified color and options. It draws the image on an existing bitmap, allocates a new bitmap or uses the screen. The images can be clipped.

Parameters
ThisA pointer to the EFI_HII_IMAGE_PROTOCOL instance.
FlagsDescribes how the image is to be drawn.
PackageListThe package list in the HII database to search for the specified image.
ImageIdThe image's id, which is unique within PackageList.
BltIf 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.
BltXSpecifies the offset from the left and top edge of the output image of the first pixel in the image.
BltYSpecifies the offset from the left and top edge of the output image of the first pixel in the image.
Return values
EFI_SUCCESSThe image was successfully drawn.
EFI_OUT_OF_RESOURCESUnable to allocate an output buffer for Blt.
EFI_INVALID_PARAMETERThe Blt was NULL.
EFI_NOT_FOUNDThe image specified by ImageId is not in the database. The specified PackageList is not in the database.

Definition at line 1546 of file Image.c.

◆ HiiDrawImageIdEx()

EFI_STATUS EFIAPI HiiDrawImageIdEx ( 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 )

Renders an image to a bitmap or the screen containing the contents of the specified image.

This function is similar to EFI_HII_IMAGE_PROTOCOL.DrawImageId(). The difference is that this function will locate all EFI_HII_IMAGE_DECODER_PROTOCOL instances installed in the system if the decoder of the certain image type is not supported by the EFI_HII_IMAGE_EX_PROTOCOL. The function will attempt to decode the image to the EFI_IMAGE_INPUT using the first EFI_HII_IMAGE_DECODER_PROTOCOL instance that supports the requested image type.

Parameters
ThisA pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
FlagsDescribes how the image is to be drawn.
PackageListThe package list in the HII database to search for the specified image.
ImageIdThe image's id, which is unique within PackageList.
BltIf 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.
BltXSpecifies the offset from the left and top edge of the output image of the first pixel in the image.
BltYSpecifies the offset from the left and top edge of the output image of the first pixel in the image.
Return values
EFI_SUCCESSThe image was successfully drawn.
EFI_OUT_OF_RESOURCESUnable to allocate an output buffer for Blt.
EFI_INVALID_PARAMETERThe Blt was NULL or ImageId was 0.
EFI_NOT_FOUNDThe image specified by ImageId is not in the database. The specified PackageList is not in the database.

Definition at line 200 of file ImageEx.c.

◆ HiiExportPackageLists()

EFI_STATUS EFIAPI HiiExportPackageLists ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN EFI_HII_HANDLE Handle,
IN OUT UINTN * BufferSize,
OUT EFI_HII_PACKAGE_LIST_HEADER * Buffer )

This function will export one or all package lists in the database to a buffer. For each package list exported, this function will call functions registered with EXPORT_PACK and then copy the package list to the buffer.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
HandleAn EFI_HII_HANDLE that corresponds to the desired package list in the HII database to export or NULL to indicate all package lists should be exported.
BufferSizeOn input, a pointer to the length of the buffer. On output, the length of the buffer that is required for the exported data.
BufferA pointer to a buffer that will contain the results of the export function.
Return values
EFI_SUCCESSPackage exported.
EFI_BUFFER_TO_SMALLThe HandleBufferLength parameter indicates that Handle is too small to support the number of handles. HandleBufferLength is updated with a value that will enable the data to fit.
EFI_NOT_FOUNDThe specified Handle could not be found in the current database.
EFI_INVALID_PARAMETERBufferSize was NULL.
EFI_INVALID_PARAMETERThe value referenced by BufferSize was not zero and Buffer was NULL.

Definition at line 4137 of file Database.c.

◆ HiiFindKeyboardLayouts()

EFI_STATUS EFIAPI HiiFindKeyboardLayouts ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN OUT UINT16 * KeyGuidBufferLength,
OUT EFI_GUID * KeyGuidBuffer )

This routine retrieves an array of GUID values for each keyboard layout that was previously registered in the system.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
KeyGuidBufferLengthOn input, a pointer to the length of the keyboard GUID buffer. On output, the length of the handle buffer that is required for the handles found.
KeyGuidBufferAn array of keyboard layout GUID instances returned.
Return values
EFI_SUCCESSKeyGuidBuffer was updated successfully.
EFI_BUFFER_TOO_SMALLThe KeyGuidBufferLength parameter indicates that KeyGuidBuffer is too small to support the number of GUIDs. KeyGuidBufferLength is updated with a value that will enable the data to fit.
EFI_INVALID_PARAMETERThe KeyGuidBufferLength is NULL.
EFI_INVALID_PARAMETERThe value referenced by KeyGuidBufferLength is not zero and KeyGuidBuffer is NULL.
EFI_NOT_FOUNDThere was no keyboard layout.

Definition at line 4405 of file Database.c.

◆ HiiGetAltCfg()

EFI_STATUS EFIAPI HiiGetAltCfg ( IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL * This,
IN CONST EFI_STRING Configuration,
IN CONST EFI_GUID * Guid,
IN CONST EFI_STRING Name,
IN CONST EFI_DEVICE_PATH_PROTOCOL * DevicePath,
IN CONST UINT16 * AltCfgId,
OUT EFI_STRING * AltCfgResp )

This helper function is to be called by drivers to extract portions of a larger configuration string.

Parameters
ThisA pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
ConfigurationA null-terminated Unicode string in <MultiConfigAltResp> format.
GuidA pointer to the GUID value to search for in the routing portion of the ConfigResp string when retrieving the requested data. If Guid is NULL, then all GUID values will be searched for.
NameA pointer to the NAME value to search for in the routing portion of the ConfigResp string when retrieving the requested data. If Name is NULL, then all Name values will be searched for.
DevicePathA pointer to the PATH value to search for in the routing portion of the ConfigResp string when retrieving the requested data. If DevicePath is NULL, then all DevicePath values will be searched for.
AltCfgIdA pointer to the ALTCFG value to search for in the routing portion of the ConfigResp string when retrieving the requested data. If this parameter is NULL, then the current setting will be retrieved.
AltCfgRespA pointer to a buffer which will be allocated by the function which contains the retrieved string as requested. This buffer is only allocated if the call was successful.
Return values
EFI_SUCCESSThe request succeeded. The requested data was extracted and placed in the newly allocated AltCfgResp buffer.
EFI_OUT_OF_RESOURCESNot enough memory to allocate AltCfgResp.
EFI_INVALID_PARAMETERAny parameter is invalid.
EFI_NOT_FOUNDTarget for the specified routing data was not found.

This helper function is to be called by drivers to extract portions of a larger configuration string.

Parameters
ThisA pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.
ConfigurationA null-terminated Unicode string in <MultiConfigAltResp> format.
GuidA pointer to the GUID value to search for in the routing portion of the ConfigResp string when retrieving the requested data. If Guid is NULL, then all GUID values will be searched for.
NameA pointer to the NAME value to search for in the routing portion of the ConfigResp string when retrieving the requested data. If Name is NULL, then all Name values will be searched for.
DevicePathA pointer to the PATH value to search for in the routing portion of the ConfigResp string when retrieving the requested data. If DevicePath is NULL, then all DevicePath values will be searched for.
AltCfgIdA pointer to the ALTCFG value to search for in the routing portion of the ConfigResp string when retrieving the requested data. If this parameter is NULL, then the current setting will be retrieved.
AltCfgRespA pointer to a buffer which will be allocated by the function which contains the retrieved string as requested. This buffer is only allocated if the call was successful. It is <ConfigResp> format.
Return values
EFI_SUCCESSThe request succeeded. The requested data was extracted and placed in the newly allocated AltCfgResp buffer.
EFI_OUT_OF_RESOURCESNot enough memory to allocate AltCfgResp.
EFI_INVALID_PARAMETERAny parameter is invalid.
EFI_NOT_FOUNDTarget for the specified routing data was not found.

Definition at line 6207 of file ConfigRouting.c.

◆ HiiGetConfigRespInfo()

EFI_STATUS HiiGetConfigRespInfo ( IN CONST EFI_HII_DATABASE_PROTOCOL * This)

This function mainly use to get and update ConfigResp string.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
Return values
EFI_SUCCESSGet the information successfully.
EFI_OUT_OF_RESOURCESNot enough memory to store the Configuration Setting data.

Definition at line 3403 of file Database.c.

◆ HiiGetDatabaseInfo()

EFI_STATUS HiiGetDatabaseInfo ( IN CONST EFI_HII_DATABASE_PROTOCOL * This)

This function mainly use to get HiiDatabase information.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
Return values
EFI_SUCCESSGet the information successfully.
EFI_OUT_OF_RESOURCESNot enough memory to store the Hiidatabase data.

This is an internal function,mainly use to get HiiDatabase information.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
Return values
EFI_SUCCESSGet the information successfully.
EFI_OUT_OF_RESOURCESNot enough memory to store the Hiidatabase data.

Definition at line 3467 of file Database.c.

◆ HiiGetFontInfo()

EFI_STATUS EFIAPI HiiGetFontInfo ( IN CONST EFI_HII_FONT_PROTOCOL * This,
IN OUT EFI_FONT_HANDLE * FontHandle,
IN CONST EFI_FONT_DISPLAY_INFO * StringInfoIn,
OPTIONAL OUT EFI_FONT_DISPLAY_INFO ** StringInfoOut,
IN CONST EFI_STRING String OPTIONAL )

This function iterates through fonts which match the specified font, using the specified criteria. If String is non-NULL, then all of the characters in the string must exist in order for a candidate font to be returned.

Parameters
ThisA pointer to the EFI_HII_FONT_PROTOCOL instance.
FontHandleOn entry, points to the font handle returned by a previous call to GetFontInfo() or NULL to start with the first font. On return, points to the returned font handle or points to NULL if there are no more matching fonts.
StringInfoInUpon entry, points to the font to return information about. If NULL, then the information about the system default font will be returned.
StringInfoOutUpon return, contains the matching font's information. If NULL, then no information is returned. This buffer is allocated with a call to the Boot Service AllocatePool(). It is the caller's responsibility to call the Boot Service FreePool() when the caller no longer requires the contents of StringInfoOut.
StringPoints to the string which will be tested to determine if all characters are available. If NULL, then any font is acceptable.
Return values
EFI_SUCCESSMatching font returned successfully.
EFI_NOT_FOUNDNo matching font was found.
EFI_INVALID_PARAMETERStringInfoIn is NULL.
EFI_INVALID_PARAMETERStringInfoIn->FontInfoMask is an invalid combination.
EFI_OUT_OF_RESOURCESThere were insufficient resources to complete the request.

This function iterates through fonts which match the specified font, using the specified criteria. If String is non-NULL, then all of the characters in the string must exist in order for a candidate font to be returned.

Parameters
ThisA pointer to the EFI_HII_FONT_PROTOCOL instance.
FontHandleOn entry, points to the font handle returned by a previous call to GetFontInfo() or NULL to start with the first font. On return, points to the returned font handle or points to NULL if there are no more matching fonts.
StringInfoInUpon entry, points to the font to return information about. If NULL, then the information about the system default font will be returned.
StringInfoOutUpon return, contains the matching font's information. If NULL, then no information is returned. This buffer is allocated with a call to the Boot Service AllocatePool(). It is the caller's responsibility to call the Boot Service FreePool() when the caller no longer requires the contents of StringInfoOut.
StringPoints to the string which will be tested to determine if all characters are available. If NULL, then any font is acceptable.
Return values
EFI_SUCCESSMatching font returned successfully.
EFI_NOT_FOUNDNo matching font was found.
EFI_INVALID_PARAMETERStringInfoIn->FontInfoMask is an invalid combination.
EFI_OUT_OF_RESOURCESThere were insufficient resources to complete the request.

Definition at line 2832 of file Font.c.

◆ HiiGetGlyph()

EFI_STATUS EFIAPI HiiGetGlyph ( IN CONST EFI_HII_FONT_PROTOCOL * This,
IN CHAR16 Char,
IN CONST EFI_FONT_DISPLAY_INFO * StringInfo,
OUT EFI_IMAGE_OUTPUT ** Blt,
OUT UINTN *Baseline OPTIONAL )

Convert the glyph for a single character into a bitmap.

Parameters
ThisA pointer to the EFI_HII_FONT_PROTOCOL instance.
CharCharacter to retrieve.
StringInfoPoints to the string font and color information or NULL if the string should use the default system font and color.
BltThus must point to a NULL on entry. A buffer will be allocated to hold the output and the pointer updated on exit. It is the caller's responsibility to free this buffer.
BaselineNumber of pixels from the bottom of the bitmap to the baseline.
Return values
EFI_SUCCESSGlyph bitmap created.
EFI_OUT_OF_RESOURCESUnable to allocate the output buffer Blt.
EFI_WARN_UNKNOWN_GLYPHThe glyph was unknown and was replaced with the glyph for Unicode character 0xFFFD.
EFI_INVALID_PARAMETERBlt is NULL or *Blt is not NULL.

Definition at line 2638 of file Font.c.

◆ HiiGetImage()

EFI_STATUS EFIAPI HiiGetImage ( IN CONST EFI_HII_IMAGE_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
IN EFI_IMAGE_ID ImageId,
OUT EFI_IMAGE_INPUT * Image )

This function retrieves the image specified by ImageId which is associated with the specified PackageList and copies it into the buffer specified by Image.

Parameters
ThisA pointer to the EFI_HII_IMAGE_PROTOCOL instance.
PackageListHandle of the package list where this image will be searched.
ImageIdThe image's id,, which is unique within PackageList.
ImagePoints to the image.
Return values
EFI_SUCCESSThe new image was returned successfully.
EFI_NOT_FOUNDThe image specified by ImageId is not available. The specified PackageList is not in the database.
EFI_BUFFER_TOO_SMALLThe buffer specified by ImageSize is too small to hold the image.
EFI_INVALID_PARAMETERThe Image or ImageSize was NULL.
EFI_OUT_OF_RESOURCESThe bitmap could not be retrieved because there was not enough memory.

This function retrieves the image specified by ImageId which is associated with the specified PackageList and copies it into the buffer specified by Image.

Parameters
ThisA pointer to the EFI_HII_IMAGE_PROTOCOL instance.
PackageListHandle of the package list where this image will be searched.
ImageIdThe image's id,, which is unique within PackageList.
ImagePoints to the image.
Return values
EFI_SUCCESSThe new image was returned successfully.
EFI_NOT_FOUNDThe image specified by ImageId is not in the database. The specified PackageList is not in the database.
EFI_BUFFER_TOO_SMALLThe buffer specified by ImageSize is too small to hold the image.
EFI_INVALID_PARAMETERThe Image or ImageSize was NULL.
EFI_OUT_OF_RESOURCESThe bitmap could not be retrieved because there was not enough memory.

Definition at line 1048 of file Image.c.

◆ HiiGetImageEx()

EFI_STATUS EFIAPI HiiGetImageEx ( IN CONST EFI_HII_IMAGE_EX_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
IN EFI_IMAGE_ID ImageId,
OUT 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().

This function is similar to EFI_HII_IMAGE_PROTOCOL.GetImage(). The difference is that this function will locate all EFI_HII_IMAGE_DECODER_PROTOCOL instances installed in the system if the decoder of the certain image type is not supported by the EFI_HII_IMAGE_EX_PROTOCOL. The function will attempt to decode the image to the EFI_IMAGE_INPUT using the first EFI_HII_IMAGE_DECODER_PROTOCOL instance that supports the requested image type.

Parameters
ThisA pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
PackageListThe package list in the HII database to search for the specified image.
ImageIdThe image's id, which is unique within PackageList.
ImagePoints to the image.
Return values
EFI_SUCCESSThe new image was returned successfully.
EFI_NOT_FOUNDThe image specified by ImageId is not available. The specified PackageList is not in the Database.
EFI_INVALID_PARAMETERImage was NULL or ImageId was 0.
EFI_OUT_OF_RESOURCESThe bitmap could not be retrieved because there was not enough memory.

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().

This function is similar to EFI_HII_IMAGE_PROTOCOL.GetImage().The difference is that this function will locate all EFI_HII_IMAGE_DECODER_PROTOCOL instances installed in the system if the decoder of the certain image type is not supported by the EFI_HII_IMAGE_EX_PROTOCOL. The function will attempt to decode the image to the EFI_IMAGE_INPUT using the first EFI_HII_IMAGE_DECODER_PROTOCOL instance that supports the requested image type.

Parameters
ThisA pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
PackageListThe package list in the HII database to search for the specified image.
ImageIdThe image's id, which is unique within PackageList.
ImagePoints to the image.
Return values
EFI_SUCCESSThe new image was returned successfully.
EFI_NOT_FOUNDThe image specified by ImageId is not available. The specified PackageList is not in the Database.
EFI_INVALID_PARAMETERImage was NULL or ImageId was 0.
EFI_OUT_OF_RESOURCESThe bitmap could not be retrieved because there was not enough memory.

Definition at line 70 of file ImageEx.c.

◆ HiiGetImageInfo()

EFI_STATUS EFIAPI HiiGetImageInfo ( IN CONST EFI_HII_IMAGE_EX_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
IN EFI_IMAGE_ID ImageId,
OUT EFI_IMAGE_OUTPUT * Image )

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.

Parameters
ThisA pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
PackageListHandle of the package list where this image will be searched.
ImageIdThe image's id, which is unique within PackageList.
ImagePoints to the image.
Return values
EFI_SUCCESSThe new image was returned successfully.
EFI_NOT_FOUNDThe image specified by ImageId is not in the database. The specified PackageList is not in the database.
EFI_BUFFER_TOO_SMALLThe buffer specified by ImageSize is too small to hold the image.
EFI_INVALID_PARAMETERThe Image was NULL or the ImageId was 0.
EFI_OUT_OF_RESOURCESThe bitmap could not be retrieved because there was not enough memory.

Definition at line 326 of file ImageEx.c.

◆ HiiGetKeyboardLayout()

EFI_STATUS EFIAPI HiiGetKeyboardLayout ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN CONST EFI_GUID * KeyGuid,
IN OUT UINT16 * KeyboardLayoutLength,
OUT EFI_HII_KEYBOARD_LAYOUT * KeyboardLayout )

This routine retrieves the requested keyboard layout. The layout is a physical description of the keys on a keyboard and the character(s) that are associated with a particular set of key strokes.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
KeyGuidA pointer to the unique ID associated with a given keyboard layout. If KeyGuid is NULL then the current layout will be retrieved.
KeyboardLayoutLengthOn input, a pointer to the length of the KeyboardLayout buffer. On output, the length of the data placed into KeyboardLayout.
KeyboardLayoutA pointer to a buffer containing the retrieved keyboard layout.
Return values
EFI_SUCCESSThe keyboard layout was retrieved successfully.
EFI_NOT_FOUNDThe requested keyboard layout was not found.
EFI_INVALID_PARAMETERThe KeyboardLayout or KeyboardLayoutLength was NULL.

This routine retrieves the requested keyboard layout. The layout is a physical description of the keys on a keyboard and the character(s) that are associated with a particular set of key strokes.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
KeyGuidA pointer to the unique ID associated with a given keyboard layout. If KeyGuid is NULL then the current layout will be retrieved.
KeyboardLayoutLengthOn input, a pointer to the length of the KeyboardLayout buffer. On output, the length of the data placed into KeyboardLayout.
KeyboardLayoutA pointer to a buffer containing the retrieved keyboard layout.
Return values
EFI_SUCCESSThe keyboard layout was retrieved successfully.
EFI_NOT_FOUNDThe requested keyboard layout was not found.
EFI_INVALID_PARAMETERThe KeyboardLayout or KeyboardLayoutLength was NULL.
EFI_BUFFER_TOO_SMALLThe KeyboardLayoutLength parameter indicates that KeyboardLayout is too small to support the requested keyboard layout. KeyboardLayoutLength is updated with a value that will enable the data to fit.

Definition at line 4512 of file Database.c.

◆ HiiGetLanguages()

EFI_STATUS EFIAPI HiiGetLanguages ( IN CONST EFI_HII_STRING_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
IN OUT CHAR8 * Languages,
IN OUT UINTN * LanguagesSize )

This function returns the list of supported languages, in the format specified in Appendix M of UEFI 2.1 spec.

Parameters
ThisA pointer to the EFI_HII_STRING_PROTOCOL instance.
PackageListThe package list to examine.
LanguagesPoints to the buffer to hold the returned null-terminated ASCII string.
LanguagesSizeOn entry, points to the size of the buffer pointed to by Languages, in bytes. On return, points to the length of Languages, in bytes.
Return values
EFI_SUCCESSThe languages were returned successfully.
EFI_INVALID_PARAMETERThe LanguagesSize was NULL.
EFI_INVALID_PARAMETERThe value referenced by LanguagesSize is not zero and Languages is NULL.
EFI_BUFFER_TOO_SMALLThe LanguagesSize is too small to hold the list of supported languages. LanguageSize is updated to contain the required size.
EFI_NOT_FOUNDCould not find string package in specified packagelist.

Definition at line 1847 of file String.c.

◆ HiiGetPackageListHandle()

EFI_STATUS EFIAPI HiiGetPackageListHandle ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN EFI_HII_HANDLE PackageListHandle,
OUT EFI_HANDLE * DriverHandle )

Return the EFI handle associated with a package list.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
PackageListHandleAn EFI_HII_HANDLE that corresponds to the desired package list in the HIIdatabase.
DriverHandleOn return, contains the EFI_HANDLE which was registered with the package list in NewPackageList().
Return values
EFI_SUCCESSThe DriverHandle was returned successfully.
EFI_INVALID_PARAMETERThe PackageListHandle was not valid or DriverHandle was NULL.

Return the EFI handle associated with a package list.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
PackageListHandleAn EFI_HII_HANDLE that corresponds to the desired package list in the HIIdatabase.
DriverHandleOn return, contains the EFI_HANDLE which was registered with the package list in NewPackageList().
Return values
EFI_SUCCESSThe DriverHandle was returned successfully.
EFI_INVALID_PARAMETERThe PackageListHandle was not valid or DriverHandle was NULL.
EFI_NOT_FOUNDThis PackageList handle can not be found in current database.

Definition at line 4695 of file Database.c.

◆ HiiGetSecondaryLanguages()

EFI_STATUS EFIAPI HiiGetSecondaryLanguages ( IN CONST EFI_HII_STRING_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
IN CONST CHAR8 * PrimaryLanguage,
IN OUT CHAR8 * SecondaryLanguages,
IN OUT UINTN * SecondaryLanguagesSize )

Each string package has associated with it a single primary language and zero or more secondary languages. This routine returns the secondary languages associated with a package list.

Parameters
ThisA pointer to the EFI_HII_STRING_PROTOCOL instance.
PackageListThe package list to examine.
PrimaryLanguagePoints to the null-terminated ASCII string that specifies the primary language. Languages are specified in the format specified in Appendix M of the UEFI 2.0 specification.
SecondaryLanguagesPoints to the buffer to hold the returned null-terminated ASCII string that describes the list of secondary languages for the specified PrimaryLanguage. If there are no secondary languages, the function returns successfully, but this is set to NULL.
SecondaryLanguagesSizeOn entry, points to the size of the buffer pointed to by SecondaryLanguages, in bytes. On return, points to the length of SecondaryLanguages in bytes.
Return values
EFI_SUCCESSSecondary languages were correctly returned.
EFI_INVALID_PARAMETERPrimaryLanguage or SecondaryLanguagesSize was NULL.
EFI_INVALID_PARAMETERThe value referenced by SecondaryLanguagesSize is not zero and SecondaryLanguages is NULL.
EFI_BUFFER_TOO_SMALLThe buffer specified by SecondaryLanguagesSize is too small to hold the returned information. SecondaryLanguageSize is updated to hold the size of the buffer required.
EFI_INVALID_LANGUAGEThe language specified by PrimaryLanguage is not present in the specified package list.
EFI_NOT_FOUNDThe specified PackageList is not in the Database.

Definition at line 1954 of file String.c.

◆ HiiListPackageLists()

EFI_STATUS EFIAPI HiiListPackageLists ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN UINT8 PackageType,
IN CONST EFI_GUID * PackageGuid,
IN OUT UINTN * HandleBufferLength,
OUT EFI_HII_HANDLE * Handle )

This function returns a list of the package handles of the specified type that are currently active in the database. The pseudo-type EFI_HII_PACKAGE_TYPE_ALL will cause all package handles to be listed.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
PackageTypeSpecifies the package type of the packages to list or EFI_HII_PACKAGE_TYPE_ALL for all packages to be listed.
PackageGuidIf PackageType is EFI_HII_PACKAGE_TYPE_GUID, then this is the pointer to the GUID which must match the Guid field of EFI_HII_GUID_PACKAGE_GUID_HDR. Otherwise, it must be NULL.
HandleBufferLengthOn input, a pointer to the length of the handle buffer. On output, the length of the handle buffer that is required for the handles found.
HandleAn array of EFI_HII_HANDLE instances returned.
Return values
EFI_SUCCESSThe matching handles are outputted successfully. HandleBufferLength is updated with the actual length.
EFI_BUFFER_TO_SMALLThe HandleBufferLength parameter indicates that Handle is too small to support the number of handles. HandleBufferLength is updated with a value that will enable the data to fit.
EFI_NOT_FOUNDNo matching handle could not be found in database.
EFI_INVALID_PARAMETERHandleBufferLength was NULL.
EFI_INVALID_PARAMETERThe value referenced by HandleBufferLength was not zero and Handle was NULL.
EFI_INVALID_PARAMETERPackageType is not a EFI_HII_PACKAGE_TYPE_GUID but PackageGuid is not NULL, PackageType is a EFI_HII_ PACKAGE_TYPE_GUID but PackageGuid is NULL.

Definition at line 3970 of file Database.c.

◆ HiiNewImage()

EFI_STATUS EFIAPI HiiNewImage ( IN CONST EFI_HII_IMAGE_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
OUT EFI_IMAGE_ID * ImageId,
IN CONST EFI_IMAGE_INPUT * Image )

This function adds the image Image to the group of images owned by PackageList, and returns a new image identifier (ImageId).

Parameters
ThisA pointer to the EFI_HII_IMAGE_PROTOCOL instance.
PackageListHandle of the package list where this image will be added.
ImageIdOn return, contains the new image id, which is unique within PackageList.
ImagePoints to the image.
Return values
EFI_SUCCESSThe new image was added successfully.
EFI_NOT_FOUNDThe specified PackageList could not be found in database.
EFI_OUT_OF_RESOURCESCould not add the image due to lack of resources.
EFI_INVALID_PARAMETERImage is NULL or ImageId is NULL.

Definition at line 620 of file Image.c.

◆ HiiNewImageEx()

EFI_STATUS EFIAPI HiiNewImageEx ( IN CONST EFI_HII_IMAGE_EX_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
OUT EFI_IMAGE_ID * ImageId,
IN CONST EFI_IMAGE_INPUT * Image )

The prototype of this extension function is the same with EFI_HII_IMAGE_PROTOCOL.NewImage(). This protocol invokes EFI_HII_IMAGE_PROTOCOL.NewImage() implicitly.

Parameters
ThisA pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
PackageListHandle of the package list where this image will be added.
ImageIdOn return, contains the new image id, which is unique within PackageList.
ImagePoints to the image.
Return values
EFI_SUCCESSThe new image was added successfully.
EFI_NOT_FOUNDThe PackageList could not be found.
EFI_OUT_OF_RESOURCESCould not add the image due to lack of resources.
EFI_INVALID_PARAMETERImage is NULL or ImageId is NULL.

Definition at line 30 of file ImageEx.c.

◆ HiiNewPackageList()

EFI_STATUS EFIAPI HiiNewPackageList ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN CONST EFI_HII_PACKAGE_LIST_HEADER * PackageList,
IN CONST EFI_HANDLE DriverHandle,
OPTIONAL OUT EFI_HII_HANDLE * Handle )

This function adds the packages in the package list to the database and returns a handle. If there is a EFI_DEVICE_PATH_PROTOCOL associated with the DriverHandle, then this function will create a package of type EFI_PACKAGE_TYPE_DEVICE_PATH and add it to the package list.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
PackageListA pointer to an EFI_HII_PACKAGE_LIST_HEADER structure.
DriverHandleAssociate the package list with this EFI handle. If a NULL is specified, this data will not be associate with any drivers and cannot have a callback induced.
HandleA pointer to the EFI_HII_HANDLE instance.
Return values
EFI_SUCCESSThe package list associated with the Handle was added to the HII database.
EFI_OUT_OF_RESOURCESUnable to allocate necessary resources for the new database contents.
EFI_INVALID_PARAMETERPackageList is NULL or Handle is NULL.

This function adds the packages in the package list to the database and returns a handle. If there is a EFI_DEVICE_PATH_PROTOCOL associated with the DriverHandle, then this function will create a package of type EFI_PACKAGE_TYPE_DEVICE_PATH and add it to the package list.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
PackageListA pointer to an EFI_HII_PACKAGE_LIST_HEADER structure.
DriverHandleAssociate the package list with this EFI handle. If a NULL is specified, this data will not be associate with any drivers and cannot have a callback induced.
HandleA pointer to the EFI_HII_HANDLE instance.
Return values
EFI_SUCCESSThe package list associated with the Handle was added to the HII database.
EFI_OUT_OF_RESOURCESUnable to allocate necessary resources for the new database contents.
EFI_INVALID_PARAMETERPackageList is NULL or Handle is NULL.
EFI_INVALID_PARAMETERPackageListGuid already exists in database.

Definition at line 3540 of file Database.c.

◆ HiiNewString()

EFI_STATUS EFIAPI HiiNewString ( IN CONST EFI_HII_STRING_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
OUT EFI_STRING_ID * StringId,
IN CONST CHAR8 * Language,
IN CONST CHAR16 * LanguageName,
OPTIONAL IN CONST EFI_STRING String,
IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL )

This function adds the string String to the group of strings owned by PackageList, with the specified font information StringFontInfo and returns a new string id.

Parameters
ThisA pointer to the EFI_HII_STRING_PROTOCOL instance.
PackageListHandle of the package list where this string will be added.
StringIdOn return, contains the new strings id, which is unique within PackageList.
LanguagePoints to the language for the new string.
LanguageNamePoints to the printable language name to associate with the passed in Language field.If LanguageName is not NULL and the string package header's LanguageName associated with a given Language is not zero, the LanguageName being passed in will be ignored.
StringPoints to the new null-terminated string.
StringFontInfoPoints to the new string's font information or NULL if the string should have the default system font, size and style.
Return values
EFI_SUCCESSThe new string was added successfully.
EFI_NOT_FOUNDThe specified PackageList could not be found in database.
EFI_OUT_OF_RESOURCESCould not add the string due to lack of resources.
EFI_INVALID_PARAMETERString is NULL or StringId is NULL or Language is NULL.

This function adds the string String to the group of strings owned by PackageList, with the specified font information StringFontInfo and returns a new string id. The new string identifier is guaranteed to be unique within the package list. That new string identifier is reserved for all languages in the package list.

Parameters
ThisA pointer to the EFI_HII_STRING_PROTOCOL instance.
PackageListHandle of the package list where this string will be added.
StringIdOn return, contains the new strings id, which is unique within PackageList.
LanguagePoints to the language for the new string.
LanguageNamePoints to the printable language name to associate with the passed in Language field.If LanguageName is not NULL and the string package header's LanguageName associated with a given Language is not zero, the LanguageName being passed in will be ignored.
StringPoints to the new null-terminated string.
StringFontInfoPoints to the new string's font information or NULL if the string should have the default system font, size and style.
Return values
EFI_SUCCESSThe new string was added successfully.
EFI_NOT_FOUNDThe specified PackageList could not be found in database.
EFI_OUT_OF_RESOURCESCould not add the string due to lack of resources.
EFI_INVALID_PARAMETERString is NULL or StringId is NULL or Language is NULL.
EFI_INVALID_PARAMETERThe specified StringFontInfo does not exist in current database.

Definition at line 1156 of file String.c.

◆ HiiRegisterPackageNotify()

EFI_STATUS EFIAPI HiiRegisterPackageNotify ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN UINT8 PackageType,
IN CONST EFI_GUID * PackageGuid,
IN CONST EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
OUT EFI_HANDLE * NotifyHandle )

This function registers a function which will be called when specified actions related to packages of the specified type occur in the HII database. By registering a function, other HII-related drivers are notified when specific package types are added, removed or updated in the HII database. Each driver or application which registers a notification should use EFI_HII_DATABASE_PROTOCOL.UnregisterPackageNotify() before exiting.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
PackageTypeSpecifies the package type of the packages to list or EFI_HII_PACKAGE_TYPE_ALL for all packages to be listed.
PackageGuidIf PackageType is EFI_HII_PACKAGE_TYPE_GUID, then this is the pointer to the GUID which must match the Guid field of EFI_HII_GUID_PACKAGE_GUID_HDR. Otherwise, it must be NULL.
PackageNotifyFnPoints to the function to be called when the event specified by NotificationType occurs.
NotifyTypeDescribes the types of notification which this function will be receiving.
NotifyHandlePoints to the unique handle assigned to the registered notification. Can be used in EFI_HII_DATABASE_PROTOCOL.UnregisterPackageNotify() to stop notifications.
Return values
EFI_SUCCESSNotification registered successfully.
EFI_OUT_OF_RESOURCESUnable to allocate necessary data structures
EFI_INVALID_PARAMETERNotifyHandle is NULL.
EFI_INVALID_PARAMETERPackageGuid is not NULL when PackageType is not EFI_HII_PACKAGE_TYPE_GUID.
EFI_INVALID_PARAMETERPackageGuid is NULL when PackageType is EFI_HII_PACKAGE_TYPE_GUID.

Definition at line 4249 of file Database.c.

◆ HiiRemovePackageList()

EFI_STATUS EFIAPI HiiRemovePackageList ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN EFI_HII_HANDLE Handle )

This function removes the package list that is associated with a handle Handle from the HII database. Before removing the package, any registered functions with the notification type REMOVE_PACK and the same package type will be called.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
HandleThe handle that was registered to the data that is requested for removal.
Return values
EFI_SUCCESSThe data associated with the Handle was removed from the HII database.
EFI_NOT_FOUNDThe specified Handle is not in database.

This function removes the package list that is associated with Handle from the HII database. Before removing the package, any registered functions with the notification type REMOVE_PACK and the same package type will be called.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
HandleThe handle that was registered to the data that is requested for removal.
Return values
EFI_SUCCESSThe data associated with the Handle was removed from the HII database.
EFI_NOT_FOUNDThe specified handle is not in database.
EFI_INVALID_PARAMETERThe Handle was not valid.

Definition at line 3661 of file Database.c.

◆ HiiSetImage()

EFI_STATUS EFIAPI HiiSetImage ( IN CONST EFI_HII_IMAGE_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
IN EFI_IMAGE_ID ImageId,
IN CONST EFI_IMAGE_INPUT * Image )

This function updates the image specified by ImageId in the specified PackageListHandle to the image specified by Image.

Parameters
ThisA pointer to the EFI_HII_IMAGE_PROTOCOL instance.
PackageListThe package list containing the images.
ImageIdThe image's id,, which is unique within PackageList.
ImagePoints to the image.
Return values
EFI_SUCCESSThe new image was updated successfully.
EFI_NOT_FOUNDThe image specified by ImageId is not in the database. The specified PackageList is not in the database.
EFI_INVALID_PARAMETERThe Image was NULL.

Definition at line 1079 of file Image.c.

◆ HiiSetImageEx()

EFI_STATUS EFIAPI HiiSetImageEx ( IN CONST EFI_HII_IMAGE_EX_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
IN EFI_IMAGE_ID ImageId,
IN CONST EFI_IMAGE_INPUT * Image )

Change the information about the image.

Same with EFI_HII_IMAGE_PROTOCOL.SetImage(), this protocol invokes EFI_HII_IMAGE_PROTOCOL.SetImage()implicitly.

Parameters
ThisA pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
PackageListThe package list containing the images.
ImageIdThe image's id, which is unique within PackageList.
ImagePoints to the image.
Return values
EFI_SUCCESSThe new image was successfully updated.
EFI_NOT_FOUNDThe image specified by ImageId is not in the database. The specified PackageList is not in the database.
EFI_INVALID_PARAMETERThe Image was NULL, the ImageId was 0 or the Image->Bitmap was NULL.

Change the information about the image.

Same with EFI_HII_IMAGE_PROTOCOL.SetImage(),this protocol invokes EFI_HII_IMAGE_PROTOCOL.SetImage()implicitly.

Parameters
ThisA pointer to the EFI_HII_IMAGE_EX_PROTOCOL instance.
PackageListThe package list containing the images.
ImageIdThe image's id, which is unique within PackageList.
ImagePoints to the image.
Return values
EFI_SUCCESSThe new image was successfully updated.
EFI_NOT_FOUNDThe image specified by ImageId is not in the database. The specified PackageList is not in the database.
EFI_INVALID_PARAMETERThe Image was NULL, the ImageId was 0 or the Image->Bitmap was NULL.

Definition at line 104 of file ImageEx.c.

◆ HiiSetKeyboardLayout()

EFI_STATUS EFIAPI HiiSetKeyboardLayout ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN CONST EFI_GUID * KeyGuid )

This routine sets the default keyboard layout to the one referenced by KeyGuid. When this routine is called, an event will be signaled of the EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID group type. This is so that agents which are sensitive to the current keyboard layout being changed can be notified of this change.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
KeyGuidA pointer to the unique ID associated with a given keyboard layout.
Return values
EFI_SUCCESSThe current keyboard layout was successfully set.
EFI_NOT_FOUNDThe referenced keyboard layout was not found, so action was taken.
EFI_INVALID_PARAMETERThe KeyGuid was NULL.

Definition at line 4614 of file Database.c.

◆ HiiStringIdToImage()

EFI_STATUS EFIAPI HiiStringIdToImage ( IN CONST EFI_HII_FONT_PROTOCOL * This,
IN EFI_HII_OUT_FLAGS Flags,
IN EFI_HII_HANDLE PackageList,
IN EFI_STRING_ID StringId,
IN CONST CHAR8 * Language,
IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
IN OUT EFI_IMAGE_OUTPUT ** Blt,
IN UINTN BltX,
IN UINTN BltY,
OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
OUT UINTN *RowInfoArraySize OPTIONAL,
OUT UINTN *ColumnInfoArray OPTIONAL )

Render a string to a bitmap or the screen containing the contents of the specified string.

Parameters
ThisA pointer to the EFI_HII_FONT_PROTOCOL instance.
FlagsDescribes how the string is to be drawn.
PackageListThe package list in the HII database to search for the specified string.
StringIdThe string's id, which is unique within PackageList.
LanguagePoints to the language for the retrieved string. If NULL, then the current system language is used.
StringInfoPoints to the string output information, including the color and font. If NULL, then the string will be output in the default system font and color.
BltIf this points to a non-NULL on entry, this points to the image, which is Width pixels wide and Height pixels high. The string will be drawn onto this image and EFI_HII_OUT_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.
BltXTogether with BltX, Specifies the offset from the left and top edge of the image of the first character cell in the image.
BltYTogether with BltY, Specifies the offset from the left and top edge of the image of the first character cell in the image.
RowInfoArrayIf this is non-NULL on entry, then on exit, this will point to an allocated buffer containing row information and RowInfoArraySize will be updated to contain the number of elements. This array describes the characters which were at least partially drawn and the heights of the rows. It is the caller's responsibility to free this buffer.
RowInfoArraySizeIf this is non-NULL on entry, then on exit it contains the number of elements in RowInfoArray.
ColumnInfoArrayIf this is non-NULL, then on return it will be filled with the horizontal offset for each character in the string on the row where it is displayed. Non-printing characters will have the offset ~0. The caller is responsible to allocate a buffer large enough so that there is one entry for each character in the string, not including the null-terminator. It is possible when character display is normalized that some character cells overlap.
Return values
EFI_SUCCESSThe string was successfully rendered.
EFI_OUT_OF_RESOURCESUnable to allocate an output buffer for RowInfoArray or Blt.
EFI_INVALID_PARAMETERThe Blt or PackageList was NULL.
EFI_INVALID_PARAMETERFlags were invalid combination.
EFI_NOT_FOUNDThe specified PackageList is not in the Database or the stringid is not in the specified PackageList.

Render a string to a bitmap or the screen containing the contents of the specified string.

Parameters
ThisA pointer to the EFI_HII_FONT_PROTOCOL instance.
FlagsDescribes how the string is to be drawn.
PackageListThe package list in the HII database to search for the specified string.
StringIdThe string's id, which is unique within PackageList.
LanguagePoints to the language for the retrieved string. If NULL, then the current system language is used.
StringInfoPoints to the string output information, including the color and font. If NULL, then the string will be output in the default system font and color.
BltIf this points to a non-NULL on entry, this points to the image, which is Width pixels wide and Height pixels high. The string will be drawn onto this image and EFI_HII_OUT_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.
BltXSpecifies the offset from the left and top edge of the image of the first character cell in the image.
BltYSpecifies the offset from the left and top edge of the image of the first character cell in the image.
RowInfoArrayIf this is non-NULL on entry, then on exit, this will point to an allocated buffer containing row information and RowInfoArraySize will be updated to contain the number of elements. This array describes the characters which were at least partially drawn and the heights of the rows. It is the caller's responsibility to free this buffer.
RowInfoArraySizeIf this is non-NULL on entry, then on exit it contains the number of elements in RowInfoArray.
ColumnInfoArrayIf this is non-NULL, then on return it will be filled with the horizontal offset for each character in the string on the row where it is displayed. Non-printing characters will have the offset ~0. The caller is responsible to allocate a buffer large enough so that there is one entry for each character in the string, not including the null-terminator. It is possible when character display is normalized that some character cells overlap.
Return values
EFI_SUCCESSThe string was successfully rendered.
EFI_OUT_OF_RESOURCESUnable to allocate an output buffer for RowInfoArray or Blt.
EFI_INVALID_PARAMETERThe Blt or PackageList was NULL.
EFI_INVALID_PARAMETERFlags were invalid combination.
EFI_NOT_FOUNDThe specified PackageList is not in the Database or the string id is not in the specified PackageList.

Definition at line 2399 of file Font.c.

◆ HiiStringToImage()

EFI_STATUS EFIAPI HiiStringToImage ( IN CONST EFI_HII_FONT_PROTOCOL * This,
IN EFI_HII_OUT_FLAGS Flags,
IN CONST EFI_STRING String,
IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
IN OUT EFI_IMAGE_OUTPUT ** Blt,
IN UINTN BltX,
IN UINTN BltY,
OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
OUT UINTN *RowInfoArraySize OPTIONAL,
OUT UINTN *ColumnInfoArray OPTIONAL )

Renders a string to a bitmap or to the display.

Parameters
ThisA pointer to the EFI_HII_FONT_PROTOCOL instance.
FlagsDescribes how the string is to be drawn.
StringPoints to the null-terminated string to be displayed.
StringInfoPoints to the string output information, including the color and font. If NULL, then the string will be output in the default system font and color.
BltIf this points to a non-NULL on entry, this points to the image, which is Width pixels wide and Height pixels high. The string will be drawn onto this image and EFI_HII_OUT_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.
BltXTogether with BltX, Specifies the offset from the left and top edge of the image of the first character cell in the image.
BltYTogether with BltY, Specifies the offset from the left and top edge of the image of the first character cell in the image.
RowInfoArrayIf this is non-NULL on entry, then on exit, this will point to an allocated buffer containing row information and RowInfoArraySize will be updated to contain the number of elements. This array describes the characters which were at least partially drawn and the heights of the rows. It is the caller's responsibility to free this buffer.
RowInfoArraySizeIf this is non-NULL on entry, then on exit it contains the number of elements in RowInfoArray.
ColumnInfoArrayIf this is non-NULL, then on return it will be filled with the horizontal offset for each character in the string on the row where it is displayed. Non-printing characters will have the offset ~0. The caller is responsible to allocate a buffer large enough so that there is one entry for each character in the string, not including the null-terminator. It is possible when character display is normalized that some character cells overlap.
Return values
EFI_SUCCESSThe string was successfully rendered.
EFI_OUT_OF_RESOURCESUnable to allocate an output buffer for RowInfoArray or Blt.
EFI_INVALID_PARAMETERThe String or Blt.
EFI_INVALID_PARAMETERFlags were invalid combination..

Renders a string to a bitmap or to the display.

Parameters
ThisA pointer to the EFI_HII_FONT_PROTOCOL instance.
FlagsDescribes how the string is to be drawn.
StringPoints to the null-terminated string to be displayed.
StringInfoPoints to the string output information, including the color and font. If NULL, then the string will be output in the default system font and color.
BltIf this points to a non-NULL on entry, this points to the image, which is Width pixels wide and Height pixels high. The string will be drawn onto this image and EFI_HII_OUT_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.
BltXSpecifies the offset from the left and top edge of the image of the first character cell in the image.
BltYSpecifies the offset from the left and top edge of the image of the first character cell in the image.
RowInfoArrayIf this is non-NULL on entry, then on exit, this will point to an allocated buffer containing row information and RowInfoArraySize will be updated to contain the number of elements. This array describes the characters which were at least partially drawn and the heights of the rows. It is the caller's responsibility to free this buffer.
RowInfoArraySizeIf this is non-NULL on entry, then on exit it contains the number of elements in RowInfoArray.
ColumnInfoArrayIf this is non-NULL, then on return it will be filled with the horizontal offset for each character in the string on the row where it is displayed. Non-printing characters will have the offset ~0. The caller is responsible to allocate a buffer large enough so that there is one entry for each character in the string, not including the null-terminator. It is possible when character display is normalized that some character cells overlap.
Return values
EFI_SUCCESSThe string was successfully rendered.
EFI_OUT_OF_RESOURCESUnable to allocate an output buffer for RowInfoArray or Blt.
EFI_INVALID_PARAMETERThe String or Blt was NULL.
EFI_INVALID_PARAMETERFlags were invalid combination..

Definition at line 1624 of file Font.c.

◆ HiiUnregisterPackageNotify()

EFI_STATUS EFIAPI HiiUnregisterPackageNotify ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN EFI_HANDLE NotificationHandle )

Removes the specified HII database package-related notification.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
NotificationHandleThe handle of the notification function being unregistered.
Return values
EFI_SUCCESSNotification is unregistered successfully.
EFI_NOT_FOUNDThe incoming notification handle does not exist in current hii database.

Removes the specified HII database package-related notification.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
NotificationHandleThe handle of the notification function being unregistered.
Return values
EFI_SUCCESSNotification is unregistered successfully.
EFI_INVALID_PARAMETERThe Handle is invalid.
EFI_NOT_FOUNDThe incoming notification handle does not exist in current hii database.

Definition at line 4324 of file Database.c.

◆ HiiUpdatePackageList()

EFI_STATUS EFIAPI HiiUpdatePackageList ( IN CONST EFI_HII_DATABASE_PROTOCOL * This,
IN EFI_HII_HANDLE Handle,
IN CONST EFI_HII_PACKAGE_LIST_HEADER * PackageList )

This function updates the existing package list (which has the specified Handle) in the HII databases, using the new package list specified by PackageList.

Parameters
ThisA pointer to the EFI_HII_DATABASE_PROTOCOL instance.
HandleThe handle that was registered to the data that is requested to be updated.
PackageListA pointer to an EFI_HII_PACKAGE_LIST_HEADER package.
Return values
EFI_SUCCESSThe HII database was successfully updated.
EFI_OUT_OF_RESOURCESUnable to allocate enough memory for the updated database.
EFI_INVALID_PARAMETERPackageList was NULL.
EFI_NOT_FOUNDThe specified Handle is not in database.

Definition at line 3816 of file Database.c.

◆ IGetImage()

EFI_STATUS IGetImage ( IN LIST_ENTRY * Database,
IN EFI_HII_HANDLE PackageList,
IN EFI_IMAGE_ID ImageId,
OUT EFI_IMAGE_INPUT * Image,
IN BOOLEAN BitmapOnly )

This function retrieves the image specified by ImageId which is associated with the specified PackageList and copies it into the buffer specified by Image.

Parameters
DatabaseA pointer to the database list header.
PackageListHandle of the package list where this image will be searched.
ImageIdThe image's id,, which is unique within PackageList.
ImagePoints to the image.
BitmapOnlyTRUE to only return the bitmap type image. FALSE to locate image decoder instance to decode image.
Return values
EFI_SUCCESSThe new image was returned successfully.
EFI_NOT_FOUNDThe image specified by ImageId is not in the database. The specified PackageList is not in the database.
EFI_BUFFER_TOO_SMALLThe buffer specified by ImageSize is too small to hold the image.
EFI_INVALID_PARAMETERThe Image or ImageSize was NULL.
EFI_OUT_OF_RESOURCESThe bitmap could not be retrieved because there was not enough memory.

Definition at line 832 of file Image.c.

◆ InternalHiiGetString()

EFI_STATUS EFIAPI InternalHiiGetString ( IN CONST EFI_HII_STRING_PROTOCOL * This,
IN CONST CHAR8 * Language,
IN EFI_HII_HANDLE PackageList,
IN EFI_STRING_ID StringId,
OUT EFI_STRING String,
IN OUT UINTN * StringSize,
OUT EFI_FONT_INFO **StringFontInfo OPTIONAL )

This function retrieves the string specified by StringId which is associated with the specified PackageList in the language Language and copies it into the buffer specified by String.

Parameters
ThisA pointer to the EFI_HII_STRING_PROTOCOL instance.
LanguagePoints to the language for the retrieved string.
PackageListThe package list in the HII database to search for the specified string.
StringIdThe string's id, which is unique within PackageList.
StringPoints to the new null-terminated string.
StringSizeOn entry, points to the size of the buffer pointed to by String, in bytes. On return, points to the length of the string, in bytes.
StringFontInfoIf not NULL, points to the string's font information. It's caller's responsibility to free this buffer.
Return values
EFI_SUCCESSThe string was returned successfully.
EFI_NOT_FOUNDThe string specified by StringId is not available. The specified PackageList is not in the database.
EFI_INVALID_LANGUAGEThe string specified by StringId is available but not in the specified language.
EFI_BUFFER_TOO_SMALLThe buffer specified by StringSize is too small to hold the string.
EFI_INVALID_PARAMETERThe Language or StringSize was NULL.
EFI_INVALID_PARAMETERThe value referenced by StringSize was not zero and String was NULL.
EFI_OUT_OF_RESOURCESThere were insufficient resources to complete the request.

This function retrieves the string specified by StringId which is associated with the specified PackageList in the language Language and copies it into the buffer specified by String.

Parameters
ThisA pointer to the EFI_HII_STRING_PROTOCOL instance.
LanguagePoints to the language for the retrieved string.
PackageListThe package list in the HII database to search for the specified string.
StringIdThe string's id, which is unique within PackageList.
StringPoints to the new null-terminated string.
StringSizeOn entry, points to the size of the buffer pointed to by String, in bytes. On return, points to the length of the string, in bytes.
StringFontInfoIf not NULL, points to the string's font information. It's caller's responsibility to free this buffer.
Return values
EFI_SUCCESSThe string was returned successfully.
EFI_NOT_FOUNDThe string specified by StringId is not available.
EFI_NOT_FOUNDThe string specified by StringId is available but not in the specified language. The specified PackageList is not in the database.
EFI_INVALID_LANGUAGE- The string specified by StringId is available but
EFI_BUFFER_TOO_SMALLThe buffer specified by StringSize is too small to hold the string.
EFI_INVALID_PARAMETERThe Language or StringSize was NULL.
EFI_INVALID_PARAMETERThe value referenced by StringSize was not zero and String was NULL.
EFI_OUT_OF_RESOURCESThere were insufficient resources to complete the request.

Definition at line 1644 of file String.c.

◆ InternalHiiSetString()

EFI_STATUS EFIAPI InternalHiiSetString ( IN CONST EFI_HII_STRING_PROTOCOL * This,
IN EFI_HII_HANDLE PackageList,
IN EFI_STRING_ID StringId,
IN CONST CHAR8 * Language,
IN CONST EFI_STRING String,
IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL )

This function updates the string specified by StringId in the specified PackageList to the text specified by String and, optionally, the font information specified by StringFontInfo.

Parameters
ThisA pointer to the EFI_HII_STRING_PROTOCOL instance.
PackageListThe package list containing the strings.
StringIdThe string's id, which is unique within PackageList.
LanguagePoints to the language for the updated string.
StringPoints to the new null-terminated string.
StringFontInfoPoints to the string's font information or NULL if the string font information is not changed.
Return values
EFI_SUCCESSThe string was updated successfully.
EFI_NOT_FOUNDThe string specified by StringId is not in the database.
EFI_INVALID_PARAMETERThe String or Language was NULL.
EFI_OUT_OF_RESOURCESThe system is out of resources to accomplish the task.

This function updates the string specified by StringId in the specified PackageList to the text specified by String and, optionally, the font information specified by StringFontInfo.

Parameters
ThisA pointer to the EFI_HII_STRING_PROTOCOL instance.
PackageListThe package list containing the strings.
StringIdThe string's id, which is unique within PackageList.
LanguagePoints to the language for the updated string.
StringPoints to the new null-terminated string.
StringFontInfoPoints to the string's font information or NULL if the string font information is not changed.
Return values
EFI_SUCCESSThe string was updated successfully.
EFI_NOT_FOUNDThe string specified by StringId is not in the database.
EFI_INVALID_PARAMETERThe String or Language was NULL.
EFI_INVALID_PARAMETERThe specified StringFontInfo does not exist in current database.
EFI_OUT_OF_RESOURCESThe system is out of resources to accomplish the task.

Definition at line 1746 of file String.c.

◆ InvokeRegisteredFunction()

EFI_STATUS InvokeRegisteredFunction ( IN HII_DATABASE_PRIVATE_DATA * Private,
IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
IN VOID * PackageInstance,
IN UINT8 PackageType,
IN EFI_HII_HANDLE Handle )

This function invokes the matching registered function.

Parameters
PrivateHII Database driver private structure.
NotifyTypeThe type of change concerning the database.
PackageInstancePoints to the package referred to by the notification.
PackageTypePackage type
HandleThe handle of the package list which contains the specified package.
Return values
EFI_SUCCESSAlready checked all registered function and invoked if matched.
EFI_INVALID_PARAMETERAny input parameter is not valid.

This function invokes the matching registered function. This is a internal function.

Parameters
PrivateHII Database driver private structure.
NotifyTypeThe type of change concerning the database.
PackageInstancePoints to the package referred to by the notification.
PackageTypePackage type
HandleThe handle of the package list which contains the specified package.
Return values
EFI_SUCCESSAlready checked all registered function and invoked if matched.
EFI_INVALID_PARAMETERAny input parameter is not valid.

Definition at line 160 of file Database.c.

◆ IsFontInfoExisted()

BOOLEAN IsFontInfoExisted ( IN HII_DATABASE_PRIVATE_DATA * Private,
IN EFI_FONT_INFO * FontInfo,
IN EFI_FONT_INFO_MASK * FontInfoMask,
OPTIONAL IN EFI_FONT_HANDLE FontHandle,
OPTIONAL OUT HII_GLOBAL_FONT_INFO **GlobalFontInfo OPTIONAL )

This function checks whether EFI_FONT_INFO exists in current database. If FontInfoMask is specified, check what options can be used to make a match. Note that the masks relate to where the system default should be supplied are ignored by this function.

Parameters
PrivateHii database private structure.
FontInfoPoints to EFI_FONT_INFO structure.
FontInfoMaskIf not NULL, describes what options can be used to make a match between the font requested and the font available. The caller must guarantee this mask is valid.
FontHandleOn entry, Points to the font handle returned by a previous call to GetFontInfo() or NULL to start with the first font.
GlobalFontInfoIf not NULL, output the corresponding global font info.
Return values
TRUEExisted
FALSENot existed

Definition at line 1175 of file Font.c.

◆ IsHiiHandleValid()

BOOLEAN IsHiiHandleValid ( EFI_HII_HANDLE Handle)

This function checks whether a handle is a valid EFI_HII_HANDLE.

Parameters
HandlePointer to a EFI_HII_HANDLE
Return values
TRUEValid
FALSEInvalid

This function checks whether a handle is a valid EFI_HII_HANDLE This is a internal function.

Parameters
HandlePointer to a EFI_HII_HANDLE
Return values
TRUEValid
FALSEInvalid

Definition at line 123 of file Database.c.

◆ LocateHiiImageDecoder()

EFI_HII_IMAGE_DECODER_PROTOCOL * LocateHiiImageDecoder ( UINT8 BlockType)

Return the first HII image decoder instance which supports the DecoderName.

Parameters
BlockTypeThe image block type.
Return values
Pointerto the HII image decoder instance.

Definition at line 247 of file ImageEx.c.

◆ LocatePackageList()

HII_DATABASE_PACKAGE_LIST_INSTANCE * LocatePackageList ( IN LIST_ENTRY * Database,
IN EFI_HII_HANDLE PackageList )

Return the HII package list identified by PackageList HII handle.

Parameters
DatabasePointer to HII database list header.
PackageListHII handle of the package list to locate.
Return values
TheHII package list instance.

Definition at line 575 of file Image.c.

Variable Documentation

◆ gExportAfterReadyToBoot

BOOLEAN gExportAfterReadyToBoot
extern

Definition at line 18 of file HiiDatabaseEntry.c.

◆ gHiiKeyboardLayoutChanged

EFI_EVENT gHiiKeyboardLayoutChanged
extern

Definition at line 17 of file HiiDatabaseEntry.c.

◆ mHiiDatabaseLock

EFI_LOCK mHiiDatabaseLock
extern

Definition at line 25 of file Database.c.