Add new header for native user-mode functios inside the NT library inside the NDK...
[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 SHORT LoadCount; /* FIXME: HACK!!! FIX ASAP */
58 SHORT 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 } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
66
67 typedef struct _LDR_RESOURCE_INFO
68 {
69 ULONG Type;
70 ULONG Name;
71 ULONG Language;
72 } LDR_RESOURCE_INFO, *PLDR_RESOURCE_INFO;
73
74 #endif