diff --git a/sdk/xtdk/bltypes.h b/sdk/xtdk/bltypes.h index 0d84500..657b561 100644 --- a/sdk/xtdk/bltypes.h +++ b/sdk/xtdk/bltypes.h @@ -163,6 +163,10 @@ typedef struct _XTBL_MODULE_INFO PWCHAR ModuleName; PWCHAR ModuleDescription; LIST_ENTRY Dependencies; + PVOID ModuleBase; + UINT64 ModuleSize; + UINT32 Revision; + PEFI_IMAGE_UNLOAD UnloadModule; } XTBL_MODULE_INFO, *PXTBL_MODULE_INFO; /* XTLDR Status data */ diff --git a/xtldr2/protocol.c b/xtldr2/protocol.c index 6f74c76..6878005 100644 --- a/xtldr2/protocol.c +++ b/xtldr2/protocol.c @@ -257,6 +257,12 @@ BlLoadModule(IN PWCHAR ModuleName) EfiSystemTable->BootServices->CloseProtocol(LoadedImage, &LIPGuid, LoadedImage, NULL); } + /* Save module information */ + ModuleInfo->ModuleBase = LoadedImage->ImageBase; + ModuleInfo->ModuleSize = LoadedImage->ImageSize; + ModuleInfo->Revision = LoadedImage->Revision; + ModuleInfo->UnloadModule = LoadedImage->Unload; + /* Close loaded image protocol */ EfiSystemTable->BootServices->CloseProtocol(LoadedImage, &LIPGuid, LoadedImage, NULL);