From de14b3a46c9e2feaea1c03f6a7726e771412d2dd Mon Sep 17 00:00:00 2001 From: Konstantin Aladyshev Date: Fri, 16 Feb 2024 14:46:39 +0300 Subject: Add simple application to dump strings from HII package Signed-off-by: Konstantin Aladyshev --- UefiLessonsPkg/ShowStrings/ShowStrings.c | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 UefiLessonsPkg/ShowStrings/ShowStrings.c (limited to 'UefiLessonsPkg/ShowStrings/ShowStrings.c') diff --git a/UefiLessonsPkg/ShowStrings/ShowStrings.c b/UefiLessonsPkg/ShowStrings/ShowStrings.c new file mode 100644 index 0000000..00d0625 --- /dev/null +++ b/UefiLessonsPkg/ShowStrings/ShowStrings.c @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2024, Konstantin Aladyshev + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include + + +INTN +EFIAPI +ShellAppMain ( + IN UINTN Argc, + IN CHAR16 **Argv + ) +{ + if (Argc != 2) { + Print(L"Usage:\n"); + Print(L" ShowStrings [Package GUID]\n"); + return EFI_INVALID_PARAMETER; + } + + EFI_GUID PackageGuid; + EFI_STATUS Status = StrToGuid(Argv[1], &PackageGuid); + if (Status != RETURN_SUCCESS) { + Print(L"Error! Can't convert argument to GUID\n"); + return EFI_INVALID_PARAMETER; + } + + EFI_HII_HANDLE* Handle = HiiGetHiiHandles(&PackageGuid); + + for (UINTN i=1; i<0xFFFF; i++) { + EFI_STRING String = HiiGetString(*Handle, i, "en-US"); + if (String != NULL) { + Print(L"ID=%d, %s\n", i, String); + FreePool(String); + } + } + return EFI_SUCCESS; +} -- cgit v1.2.3-18-g5258