diff --git a/sdk/xtdk/ldrtypes.h b/sdk/xtdk/ldrtypes.h new file mode 100644 index 0000000..315f450 --- /dev/null +++ b/sdk/xtdk/ldrtypes.h @@ -0,0 +1,73 @@ +/** + * PROJECT: ExectOS + * COPYRIGHT: See COPYING.md in the top level directory + * FILE: sdk/xtdk/ldrtypes.h + * DESCRIPTION: Loader structures definitions + * DEVELOPERS: Rafal Kupiec + */ + +#ifndef __XTDK_LDRTYPES_H +#define __XTDK_LDRTYPES_H + +#include "xtcommon.h" + + +/* Loader Data Table Entry Flags */ +#define LDR_DTE_STATIC_LINK 0x00000002 +#define LDR_DTE_IMAGE_DLL 0x00000004 +#define LDR_DTE_SHIMENG_SUPPRESSED_ENTRY 0x00000008 +#define LDR_DTE_IMAGE_INTEGRITY_FORCED 0x00000020 +#define LDR_DTE_LOAD_IN_PROGRESS 0x00001000 +#define LDR_DTE_UNLOAD_IN_PROGRESS 0x00002000 +#define LDR_DTE_ENTRY_PROCESSED 0x00004000 +#define LDR_DTE_ENTRY_INSERTED 0x00008000 +#define LDR_DTE_CURRENT_LOAD 0x00010000 +#define LDR_DTE_FAILED_BUILTIN_LOAD 0x00020000 +#define LDR_DTE_DONT_CALL_FOR_THREADS 0x00040000 +#define LDR_DTE_PROCESS_ATTACH_CALLED 0x00080000 +#define LDR_DTE_DEBUG_SYMBOLS_LOADED 0x00100000 +#define LDR_DTE_IMAGE_NOT_AT_BASE 0x00200000 +#define LDR_DTE_COR_IMAGE 0x00400000 +#define LDR_DTE_COR_OWNS_UNMAP 0x00800000 +#define LDR_DTE_SYSTEM_MAPPED 0x01000000 +#define LDR_DTE_IMAGE_VERIFYING 0x02000000 +#define LDR_DTE_DRIVER_DEPENDENT_DLL 0x04000000 +#define LDR_DTE_ENTRY_NATIVE 0x08000000 +#define LDR_DTE_REDIRECTED 0x10000000 +#define LDR_DTE_NON_PAGED_DEBUG_INFO 0x20000000 +#define LDR_DTE_MM_LOADED 0x40000000 +#define LDR_DTE_COMPAT_DATABASE_PROCESSED 0x80000000 + +/* Loader data table entry */ +typedef struct _LDR_DATA_TABLE_ENTRY +{ + LIST_ENTRY InLoadOrderLinks; + LIST_ENTRY InMemoryOrderLinks; + LIST_ENTRY InInitializationOrderLinks; + PVOID DllBase; + PVOID EntryPoint; + ULONG SizeOfImage; + UNICODE_STRING FullDllName; + UNICODE_STRING BaseDllName; + ULONG Flags; + USHORT LoadCount; + USHORT TlsIndex; + union + { + LIST_ENTRY HashLinks; + struct + { + PVOID SectionPointer; + ULONG CheckSum; + }; + }; + union + { + ULONG TimeDateStamp; + PVOID LoadedImports; + }; + PVOID EntryPointActivationContext; + PVOID PatchInformation; +} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; + +#endif /* __XTDK_LDRTYPES_H */ diff --git a/sdk/xtdk/xtkmapi.h b/sdk/xtdk/xtkmapi.h index 3551523..d9fc2b4 100644 --- a/sdk/xtdk/xtkmapi.h +++ b/sdk/xtdk/xtkmapi.h @@ -26,6 +26,7 @@ /* Low level data types headers */ #include "rtltypes.h" +#include "ldrtypes.h" #include "hltypes.h" /* XT routines */ diff --git a/sdk/xtdk/xtstruct.h b/sdk/xtdk/xtstruct.h index 3099456..a79d9e7 100644 --- a/sdk/xtdk/xtstruct.h +++ b/sdk/xtdk/xtstruct.h @@ -145,6 +145,7 @@ typedef struct _EFI_VLAN_DEVICE_PATH EFI_VLAN_DEVICE_PATH, *PEFI_VLAN_DEVICE_PAT typedef struct _FIRMWARE_INFORMATION_BLOCK FIRMWARE_INFORMATION_BLOCK, *PFIRMWARE_INFORMATION_BLOCK; typedef struct _GUID GUID, *PGUID; typedef struct _KERNEL_INITIALIZATION_BLOCK KERNEL_INITIALIZATION_BLOCK, *PKERNEL_INITIALIZATION_BLOCK; +typedef struct _LDR_DATA_TABLE_ENTRY LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; typedef struct _LIST_ENTRY LIST_ENTRY, *PLIST_ENTRY; typedef struct _LIST_ENTRY32 LIST_ENTRY32, *PLIST_ENTRY32; typedef struct _LIST_ENTRY64 LIST_ENTRY64, *PLIST_ENTRY64;