- Fix build.
[reactos.git] / reactos / dll / ntdll / include / ntdllp.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS System Libraries
4 * FILE: dll/ntdll/include/ntdllp.h
5 * PURPOSE: Native Libary Internal Header
6 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
7 */
8
9 /* INCLUDES ******************************************************************/
10
11 extern BOOLEAN ShowSnaps;
12
13 typedef struct _LDRP_TLS_DATA
14 {
15 LIST_ENTRY TlsLinks;
16 IMAGE_TLS_DIRECTORY TlsDirectory;
17 } LDRP_TLS_DATA, *PLDRP_TLS_DATA;
18
19 typedef BOOL
20 (NTAPI *PDLLMAIN_FUNC)(HANDLE hInst,
21 ULONG ul_reason_for_call,
22 LPVOID lpReserved);
23
24 /* Global data */
25 extern RTL_CRITICAL_SECTION LdrpLoaderLock;
26 extern BOOLEAN LdrpInLdrInit;
27
28 /* ldrinit.c */
29 NTSTATUS NTAPI LdrpRunInitializeRoutines(IN PCONTEXT Context OPTIONAL);
30 NTSTATUS NTAPI LdrpInitializeTls(VOID);
31 NTSTATUS NTAPI LdrpAllocateTls(VOID);
32 VOID NTAPI LdrpFreeTls(VOID);
33 VOID NTAPI LdrpTlsCallback(PVOID BaseAddress, ULONG Reason);
34 BOOLEAN NTAPI LdrpCallDllEntry(PDLLMAIN_FUNC EntryPoint, PVOID BaseAddress, ULONG Reason, PVOID Context);
35
36 /* ldrpe.c */
37 NTSTATUS
38 NTAPI
39 LdrpSnapThunk(IN PVOID ExportBase,
40 IN PVOID ImportBase,
41 IN PIMAGE_THUNK_DATA OriginalThunk,
42 IN OUT PIMAGE_THUNK_DATA Thunk,
43 IN PIMAGE_EXPORT_DIRECTORY ExportEntry,
44 IN ULONG ExportSize,
45 IN BOOLEAN Static,
46 IN LPSTR DllName);
47
48 /* ldrutils.c */
49 NTSTATUS NTAPI
50 LdrpGetProcedureAddress(IN PVOID BaseAddress,
51 IN PANSI_STRING Name,
52 IN ULONG Ordinal,
53 OUT PVOID *ProcedureAddress,
54 IN BOOLEAN ExecuteInit);
55 NTSTATUS NTAPI
56 LdrpLoadDll(IN BOOLEAN Redirected,
57 IN PWSTR DllPath OPTIONAL,
58 IN PULONG DllCharacteristics OPTIONAL,
59 IN PUNICODE_STRING DllName,
60 OUT PVOID *BaseAddress,
61 IN BOOLEAN CallInit);
62
63 ULONG NTAPI
64 LdrpClearLoadInProgress();
65
66 /* FIXME: Cleanup this mess */
67 typedef NTSTATUS (NTAPI *PEPFUNC)(PPEB);
68 NTSTATUS LdrMapSections(HANDLE ProcessHandle,
69 PVOID ImageBase,
70 HANDLE SectionHandle,
71 PIMAGE_NT_HEADERS NTHeaders);
72 NTSTATUS LdrMapNTDllForProcess(HANDLE ProcessHandle,
73 PHANDLE NTDllSectionHandle);
74 BOOLEAN LdrMappedAsDataFile(PVOID *BaseAddress);
75 ULONG
76 LdrpGetResidentSize(PIMAGE_NT_HEADERS NTHeaders);
77 PEPFUNC LdrPEStartup (PVOID ImageBase,
78 HANDLE SectionHandle,
79 PLDR_DATA_TABLE_ENTRY* Module,
80 PWSTR FullDosName);
81
82 extern HANDLE WindowsApiPort;
83
84 /* EOF */