/** * 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 /* 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 */