260f83e875c395eb27fc88af38fbed991b6017f2
[reactos.git] / reactos / include / ndk / ldrtypes.h
1 /*
2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/ldrtypes.h
4 * PURPOSE: Definitions for Loader Types not defined in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
6 * UPDATE HISTORY:
7 * Created 06/10/04
8 */
9 #ifndef _LDRTYPES_H
10 #define _LDRTYPES_H
11
12 /* DEPENDENCIES **************************************************************/
13
14 /* EXPORTED DATA *************************************************************/
15
16 /* CONSTANTS *****************************************************************/
17 #define RESOURCE_TYPE_LEVEL 0
18 #define RESOURCE_NAME_LEVEL 1
19 #define RESOURCE_LANGUAGE_LEVEL 2
20 #define RESOURCE_DATA_LEVEL 3
21
22 /* FIXME: USE CORRRECT LDR_ FLAGS */
23 #define IMAGE_DLL 0x00000004
24 #define LOAD_IN_PROGRESS 0x00001000
25 #define UNLOAD_IN_PROGRESS 0x00002000
26 #define ENTRY_PROCESSED 0x00004000
27 #define DONT_CALL_FOR_THREAD 0x00040000
28 #define PROCESS_ATTACH_CALLED 0x00080000
29 #define IMAGE_NOT_AT_BASE 0x00200000
30
31 /* ENUMERATIONS **************************************************************/
32
33 /* TYPES *********************************************************************/
34 /* FIXME: Update with _LDR_DATA_TABLE_ENTRY and LDR_ flags */
35 typedef struct _PEB_LDR_DATA
36 {
37 ULONG Length;
38 BOOLEAN Initialized;
39 PVOID SsHandle;
40 LIST_ENTRY InLoadOrderModuleList;
41 LIST_ENTRY InMemoryOrderModuleList;
42 LIST_ENTRY InInitializationOrderModuleList;
43 PVOID EntryInProgress;
44 } PEB_LDR_DATA, *PPEB_LDR_DATA;
45
46 typedef struct _LDR_DATA_TABLE_ENTRY
47 {
48 LIST_ENTRY InLoadOrderModuleList;
49 LIST_ENTRY InMemoryOrderModuleList;
50 LIST_ENTRY InInitializationOrderModuleList;
51 PVOID DllBase;
52 PVOID EntryPoint;
53 ULONG SizeOfImage;
54 UNICODE_STRING FullDllName;
55 UNICODE_STRING BaseDllName;
56 ULONG Flags;
57 USHORT LoadCount; /* FIXME: HACK!!! FIX ASAP */
58 USHORT TlsIndex; /* FIXME: HACK!!! FIX ASAP */
59 LIST_ENTRY HashLinks;
60 PVOID SectionPointer;
61 ULONG CheckSum;
62 ULONG TimeDateStamp;
63 PVOID LoadedImports;
64 PVOID EntryPointActivationContext;
65 PVOID PatchInformation;
66 #if defined(DBG) || defined(KDBG)
67 /* FIXME: THIS _REALLY_ NEEDS TO GO SOMEWHERE ELSE */
68 PVOID RosSymInfo;
69 #endif /* KDBG */
70 } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
71
72 typedef struct _LDR_RESOURCE_INFO
73 {
74 ULONG Type;
75 ULONG Name;
76 ULONG Language;
77 } LDR_RESOURCE_INFO, *PLDR_RESOURCE_INFO;
78
79 #endif