Sync with trunk revision r58045 to bring the corrections on configure.cmd and on...
[reactos.git] / include / ndk / ldrfuncs.h
1 /*++ NDK Version: 0098
2
3 Copyright (c) Alex Ionescu. All rights reserved.
4
5 Header Name:
6
7 ldrfuncs.h
8
9 Abstract:
10
11 Functions definitions for the Loader.
12
13 Author:
14
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16
17 --*/
18
19 #ifndef _LDRFUNCS_H
20 #define _LDRFUNCS_H
21
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26 #include <ldrtypes.h>
27 #if defined(_MSC_VER) && !defined(NTOS_MODE_USER)
28 #include <ntimage.h>
29 #endif
30
31 //
32 // Resource Functions
33 //
34 NTSTATUS
35 NTAPI
36 LdrAccessResource(
37 IN PVOID BaseAddress,
38 IN PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry,
39 OUT PVOID *Resource OPTIONAL,
40 OUT PULONG Size OPTIONAL
41 );
42
43 NTSTATUS
44 NTAPI
45 LdrFindResource_U(
46 IN PVOID BaseAddress,
47 IN PLDR_RESOURCE_INFO ResourceInfo,
48 IN ULONG Level,
49 OUT PIMAGE_RESOURCE_DATA_ENTRY *ResourceDataEntry
50 );
51
52 NTSTATUS
53 NTAPI
54 LdrEnumResources(
55 IN PVOID BaseAddress,
56 IN PLDR_RESOURCE_INFO ResourceInfo,
57 IN ULONG Level,
58 IN OUT ULONG *ResourceCount,
59 OUT PLDR_ENUM_RESOURCE_INFO Resources OPTIONAL
60 );
61
62
63 NTSTATUS
64 NTAPI
65 LdrFindResourceDirectory_U(
66 IN PVOID BaseAddress,
67 IN PLDR_RESOURCE_INFO ResourceInfo,
68 IN ULONG Level,
69 OUT PIMAGE_RESOURCE_DIRECTORY *ResourceDirectory
70 );
71
72 NTSTATUS
73 NTAPI
74 LdrLoadAlternateResourceModule(
75 IN PVOID Module,
76 IN PWSTR Buffer
77 );
78
79 BOOLEAN
80 NTAPI
81 LdrUnloadAlternateResourceModule(
82 IN PVOID BaseAddress
83 );
84
85 //
86 // Misc. Functions
87 //
88 NTSTATUS
89 NTAPI
90 LdrGetProcedureAddress(
91 IN PVOID BaseAddress,
92 IN PANSI_STRING Name,
93 IN ULONG Ordinal,
94 OUT PVOID *ProcedureAddress
95 );
96
97 ULONG
98 NTAPI
99 LdrRelocateImage(
100 IN PVOID NewBase,
101 IN PUCHAR LoaderName,
102 IN ULONG Success,
103 IN ULONG Conflict,
104 IN ULONG Invalid
105 );
106
107 NTSTATUS
108 NTAPI
109 LdrLockLoaderLock(
110 IN ULONG Flags,
111 OUT PULONG Disposition OPTIONAL,
112 OUT PULONG Cookie OPTIONAL
113 );
114
115 NTSTATUS
116 NTAPI
117 LdrUnlockLoaderLock(
118 IN ULONG Flags,
119 IN ULONG Cookie OPTIONAL
120 );
121
122 BOOLEAN
123 NTAPI
124 LdrVerifyMappedImageMatchesChecksum(
125 IN PVOID BaseAddress,
126 IN SIZE_T NumberOfBytes,
127 IN ULONG FileLength
128 );
129
130 PIMAGE_BASE_RELOCATION
131 NTAPI
132 LdrProcessRelocationBlockLongLong(
133 IN ULONG_PTR Address,
134 IN ULONG Count,
135 IN PUSHORT TypeOffset,
136 IN LONGLONG Delta
137 );
138
139 NTSTATUS
140 NTAPI
141 LdrEnumerateLoadedModules(
142 IN BOOLEAN ReservedFlag,
143 IN PLDR_ENUM_CALLBACK EnumProc,
144 IN PVOID Context
145 );
146
147 #endif