4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The file provides services to manipulate string data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThis program and the accompanying materials are licensed and made available under
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncthe terms and conditions of the BSD License that accompanies this distribution.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThe full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynchttp://opensource.org/licenses/bsd-license.php.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef __HII_STRING_H__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define __HII_STRING_H__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/HiiFont.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_STRING_PROTOCOL_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { 0xfd96974, 0x23aa, 0x4cdc, { 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a } }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct _EFI_HII_STRING_PROTOCOL EFI_HII_STRING_PROTOCOL;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function adds the string String to the group of strings owned by PackageList, with the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync specified font information StringFontInfo, and returns a new string id.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The new string identifier is guaranteed to be unique within the package list.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync That new string identifier is reserved for all languages in the package list.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PackageList The handle of the package list where this string will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be added.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param StringId On return, contains the new strings id, which is
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync unique within PackageList.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Language Points to the language for the new string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param LanguageName Points to the printable language name to associate
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync with the passed in Language field.If LanguageName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is not NULL and the string package header's
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LanguageName associated with a given Language is
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync not zero, the LanguageName being passed in will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be ignored.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param String Points to the new null-terminated string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param StringFontInfo Points to the new string's font information or
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync NULL if the string should have the default system
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync font, size and style.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The new string was added successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The specified PackageList could not be found in
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES Could not add the string due to lack of resources.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER String is NULL, or StringId is NULL, or Language is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER The specified StringFontInfo does not exist in
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync current database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_HII_NEW_STRING)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_HII_STRING_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE PackageList,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_STRING_ID *StringId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST CHAR8 *Language,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST CHAR16 *LanguageName, OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_STRING String,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function retrieves the string specified by StringId which is associated
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync with the specified PackageList in the language Language and copies it into
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the buffer specified by String.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Language Points to the language for the retrieved string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PackageList The package list in the HII database to search for
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the specified string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param StringId The string's id, which is unique within
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PackageList.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param String Points to the new null-terminated string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param StringSize On entry, points to the size of the buffer pointed
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync to by String, in bytes. On return, points to the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync length of the string, in bytes.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param StringFontInfo If not NULL, points to the string's font
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync information. It's caller's responsibility to free
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync this buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The string was returned successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The string specified by StringId is not available.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The string specified by StringId is available but
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync not in the specified language.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The specified PackageList is not in the database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL The buffer specified by StringSize is too small to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync hold the string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER The String or Language or StringSize was NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES There were insufficient resources to complete the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_HII_GET_STRING)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_HII_STRING_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST CHAR8 *Language,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE PackageList,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_STRING_ID StringId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_STRING String,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *StringSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_FONT_INFO **StringFontInfo OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function updates the string specified by StringId in the specified PackageList to the text
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync specified by String and, optionally, the font information specified by StringFontInfo.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PackageList The package list containing the strings.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param StringId The string's id, which is unique within
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PackageList.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Language Points to the language for the updated string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param String Points to the new null-terminated string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param StringFontInfo Points to the string's font information or NULL if
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the string font information is not changed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The string was updated successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The string specified by StringId is not in the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER The String or Language was NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER The specified StringFontInfo does not exist in
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync current database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The system is out of resources to accomplish the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync task.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_HII_SET_STRING)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_HII_STRING_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE PackageList,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_STRING_ID StringId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST CHAR8 *Language,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_STRING String,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function returns the list of supported languages.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PackageList The package list to examine.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Languages Points to the buffer to hold the returned
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync null-terminated ASCII string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param LanguagesSize On entry, points to the size of the buffer pointed
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync to by Languages, in bytes. On return, points to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the length of Languages, in bytes.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The languages were returned successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER The Languages or LanguagesSize was NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL The LanguagesSize is too small to hold the list of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync supported languages. LanguageSize is updated to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync contain the required size.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND Could not find string package in specified
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync packagelist.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_HII_GET_LANGUAGES)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_HII_STRING_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE PackageList,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT CHAR8 *Languages,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *LanguagesSize
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Each string package has associated with it a single primary language and zero
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync or more secondary languages. This routine returns the secondary languages
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync associated with a package list.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_HII_STRING_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PackageList The package list to examine.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PrimaryLanguage Points to the null-terminated ASCII string that specifies
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the primary language. Languages are specified in the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync format specified in Appendix M of the UEFI 2.0 specification.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SecondaryLanguages Points to the buffer to hold the returned null-terminated
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ASCII string that describes the list of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync secondary languages for the specified
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PrimaryLanguage. If there are no secondary
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync languages, the function returns successfully, but
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync this is set to NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SecondaryLanguagesSize On entry, points to the size of the buffer pointed
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync to by SecondaryLanguages, in bytes. On return,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync points to the length of SecondaryLanguages in bytes.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Secondary languages were correctly returned.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER PrimaryLanguage or SecondaryLanguages or
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SecondaryLanguagesSize was NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL The buffer specified by SecondaryLanguagesSize is
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync too small to hold the returned information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SecondaryLanguageSize is updated to hold the size of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the buffer required.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_LANGUAGE The language specified by PrimaryLanguage is not
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync present in the specified package list.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The specified PackageList is not in the Database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_HII_GET_2ND_LANGUAGES)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_HII_STRING_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE PackageList,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST CHAR8 *PrimaryLanguage,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT CHAR8 *SecondaryLanguages,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *SecondaryLanguagesSize
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Services to manipulate the string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncstruct _EFI_HII_STRING_PROTOCOL {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_NEW_STRING NewString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_GET_STRING GetString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_SET_STRING SetString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_GET_LANGUAGES GetLanguages;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_GET_2ND_LANGUAGES GetSecondaryLanguages;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiHiiStringProtocolGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync