diff options
Diffstat (limited to 'Lesson_12/UefiLessonsPkg/ImageInfo')
| -rw-r--r-- | Lesson_12/UefiLessonsPkg/ImageInfo/ImageInfo.c | 44 | ||||
| -rw-r--r-- | Lesson_12/UefiLessonsPkg/ImageInfo/ImageInfo.inf | 22 | 
2 files changed, 66 insertions, 0 deletions
| diff --git a/Lesson_12/UefiLessonsPkg/ImageInfo/ImageInfo.c b/Lesson_12/UefiLessonsPkg/ImageInfo/ImageInfo.c new file mode 100644 index 0000000..c45570e --- /dev/null +++ b/Lesson_12/UefiLessonsPkg/ImageInfo/ImageInfo.c @@ -0,0 +1,44 @@ +#include <Library/UefiBootServicesTableLib.h> +#include <Library/UefiLib.h> + +#include <Protocol/LoadedImage.h> +#include <Library/DevicePathLib.h> + +EFI_STATUS +EFIAPI +UefiMain ( +  IN EFI_HANDLE        ImageHandle, +  IN EFI_SYSTEM_TABLE  *SystemTable +  ) +{ +  EFI_STATUS Status; +  EFI_LOADED_IMAGE_PROTOCOL* LoadedImage; + +  Status = gBS->HandleProtocol( +    ImageHandle, +    &gEfiLoadedImageProtocolGuid, +    (VOID **) &LoadedImage +  ); + +  if (Status == EFI_SUCCESS) { +    EFI_DEVICE_PATH_PROTOCOL* DevicePath; + +    Status = gBS->HandleProtocol( +      ImageHandle, +      &gEfiLoadedImageDevicePathProtocolGuid, +      (VOID**) &DevicePath +    ); + +    if (Status == EFI_SUCCESS) { +      Print(L"Image device: %s\n", ConvertDevicePathToText(DevicePath, FALSE, TRUE)); +      Print(L"Image file: %s\n",  ConvertDevicePathToText(LoadedImage->FilePath, FALSE, TRUE));	// EFI_DEVICE_PATH_PROTOCOL *FilePath +      Print(L"Image Base: %X\n", LoadedImage->ImageBase); +      Print(L"Image Size: %X\n", LoadedImage->ImageSize); +    } else { +      Print(L"Can't get EFI_LOADED_IMAGE_PROTOCOL, Status=%r\n", Status); +    } +  } else { +    Print(L"Can't get EFI_DEVICE_PATH_PROTOCOL, Status=%r\n", Status); +  } +  return EFI_SUCCESS; +} diff --git a/Lesson_12/UefiLessonsPkg/ImageInfo/ImageInfo.inf b/Lesson_12/UefiLessonsPkg/ImageInfo/ImageInfo.inf new file mode 100644 index 0000000..0ce54a6 --- /dev/null +++ b/Lesson_12/UefiLessonsPkg/ImageInfo/ImageInfo.inf @@ -0,0 +1,22 @@ +[Defines] +  INF_VERSION                    = 1.25 +  BASE_NAME                      = ImageInfo +  FILE_GUID                      = b68d3472-70c7-4928-841b-6566032e0a23 +  MODULE_TYPE                    = UEFI_APPLICATION +  VERSION_STRING                 = 1.0 +  ENTRY_POINT                    = UefiMain + +[Sources] +  ImageInfo.c + +[Packages] +  MdePkg/MdePkg.dec + +[LibraryClasses] +  UefiApplicationEntryPoint +  UefiLib + +[Protocols] +  gEfiLoadedImageProtocolGuid +  gEfiLoadedImageDevicePathProtocolGuid + | 
