aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--UefiLessonsPkg/ShowStrings/ShowStrings.c43
-rw-r--r--UefiLessonsPkg/ShowStrings/ShowStrings.inf25
-rw-r--r--UefiLessonsPkg/UefiLessonsPkg.dsc1
-rw-r--r--bin/ShowStrings.efibin0 -> 14592 bytes
4 files changed, 69 insertions, 0 deletions
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 <aladyshev22@gmail.com>
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/UefiLib.h>
+#include <Library/HiiLib.h>
+#include <Library/MemoryAllocationLib.h>
+
+
+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 <Package GUID> 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;
+}
diff --git a/UefiLessonsPkg/ShowStrings/ShowStrings.inf b/UefiLessonsPkg/ShowStrings/ShowStrings.inf
new file mode 100644
index 0000000..c5e8206
--- /dev/null
+++ b/UefiLessonsPkg/ShowStrings/ShowStrings.inf
@@ -0,0 +1,25 @@
+##
+# Copyright (c) 2024, Konstantin Aladyshev <aladyshev22@gmail.com>
+#
+# SPDX-License-Identifier: MIT
+##
+
+[Defines]
+ INF_VERSION = 1.25
+ BASE_NAME = ShowStrings
+ FILE_GUID = ae4c1ff2-5621-4e53-a5f8-e4652b457661
+ MODULE_TYPE = UEFI_APPLICATION
+ VERSION_STRING = 1.0
+ ENTRY_POINT = ShellCEntryLib
+
+[Sources]
+ ShowStrings.c
+
+[Packages]
+ MdePkg/MdePkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+
+[LibraryClasses]
+ ShellCEntryLib
+ UefiLib
+ HiiLib
diff --git a/UefiLessonsPkg/UefiLessonsPkg.dsc b/UefiLessonsPkg/UefiLessonsPkg.dsc
index 970b5a6..c7bdde8 100644
--- a/UefiLessonsPkg/UefiLessonsPkg.dsc
+++ b/UefiLessonsPkg/UefiLessonsPkg.dsc
@@ -94,6 +94,7 @@
UefiLessonsPkg/HiddenSettings/HiddenSettings.inf
UefiLessonsPkg/ShowHIIext/ShowHIIext.inf
UefiLessonsPkg/ProtocolEventDriver/ProtocolEventDriver.inf
+ UefiLessonsPkg/ShowStrings/ShowStrings.inf
#[PcdsFixedAtBuild]
# gUefiLessonsPkgTokenSpaceGuid.PcdInt8|0x88|UINT8|0x3B81CDF1
diff --git a/bin/ShowStrings.efi b/bin/ShowStrings.efi
new file mode 100644
index 0000000..42fe0d1
--- /dev/null
+++ b/bin/ShowStrings.efi
Binary files differ