- Add msvc compatible version of ProveForRead(U)LargeInteger
[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 /* LDR_DATA_TABLE_ENTRY Flags */
23 #define LDRP_STATIC_LINK 0x00000002
24 #define LDRP_IMAGE_DLL 0x00000004
25 #define LDRP_LOAD_IN_PROGRESS 0x00001000
26 #define LDRP_UNLOAD_IN_PROGRESS 0x00002000
27 #define LDRP_ENTRY_PROCESSED 0x00004000
28 #define LDRP_ENTRY_INSERTED 0x00008000
29 #define LDRP_CURRENT_LOAD 0x00010000
30 #define LDRP_FAILED_BUILTIN_LOAD 0x00020000
31 #define LDRP_DONT_CALL_FOR_THREADS 0x00040000
32 #define LDRP_PROCESS_ATTACH_CALLED 0x00080000
33 #define LDRP_DEBUG_SYMBOLS_LOADED 0x00100000
34 #define LDRP_IMAGE_NOT_AT_BASE 0x00200000
35 #define LDRP_COR_IMAGE 0x00400000
36 #define LDR_COR_OWNS_UNMAP 0x00800000
37 #define LDRP_REDIRECTED 0x10000000
38
39 /* ENUMERATIONS **************************************************************/
40
41 /* TYPES *********************************************************************/
42 typedef struct _PEB_LDR_DATA
43 {
44 ULONG Length;
45 BOOLEAN Initialized;
46 PVOID SsHandle;
47 LIST_ENTRY InLoadOrderModuleList;
48 LIST_ENTRY InMemoryOrderModuleList;
49 LIST_ENTRY InInitializationOrderModuleList;
50 PVOID EntryInProgress;
51 } PEB_LDR_DATA, *PPEB_LDR_DATA;
52
53 typedef struct _LDR_DATA_TABLE_ENTRY
54 {
55 LIST_ENTRY InLoadOrderModuleList;
56 LIST_ENTRY InMemoryOrderModuleList;
57 LIST_ENTRY InInitializationOrderModuleList;
58 PVOID DllBase;
59 PVOID EntryPoint;
60 ULONG SizeOfImage;
61 UNICODE_STRING FullDllName;
62 UNICODE_STRING BaseDllName;
63 ULONG Flags;
64 USHORT LoadCount;
65 USHORT TlsIndex;
66 union
67 {
68 LIST_ENTRY HashLinks;
69 PVOID SectionPointer;
70 };
71 ULONG CheckSum;
72 union
73 {
74 ULONG TimeDateStamp;
75 PVOID LoadedImports;
76 };
77 PVOID EntryPointActivationContext;
78 PVOID PatchInformation;
79 #if defined(DBG) || defined(KDBG)
80 /* FIXME: THIS _REALLY_ NEEDS TO GO SOMEWHERE ELSE */
81 PVOID RosSymInfo;
82 #endif /* KDBG */
83 } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
84
85 typedef struct _LDR_RESOURCE_INFO
86 {
87 ULONG Type;
88 ULONG Name;
89 ULONG Language;
90 } LDR_RESOURCE_INFO, *PLDR_RESOURCE_INFO;
91
92 #endif