[RTL/NDK]
[reactos.git] / reactos / 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 LdrFindResourceDirectory_U(
55 IN PVOID BaseAddress,
56 IN PLDR_RESOURCE_INFO ResourceInfo,
57 IN ULONG Level,
58 OUT PIMAGE_RESOURCE_DIRECTORY *ResourceDirectory
59 );
60
61 NTSTATUS
62 NTAPI
63 LdrLoadAlternateResourceModule(
64 IN PVOID Module,
65 IN PWSTR Buffer
66 );
67
68 BOOLEAN
69 NTAPI
70 LdrUnloadAlternateResourceModule(
71 IN PVOID BaseAddress
72 );
73
74 //
75 // Misc. Functions
76 //
77 NTSTATUS
78 NTAPI
79 LdrGetProcedureAddress(
80 IN PVOID BaseAddress,
81 IN PANSI_STRING Name,
82 IN ULONG Ordinal,
83 OUT PVOID *ProcedureAddress
84 );
85
86 ULONG
87 NTAPI
88 LdrRelocateImage(
89 IN PVOID NewBase,
90 IN PUCHAR LoaderName,
91 IN ULONG Success,
92 IN ULONG Conflict,
93 IN ULONG Invalid
94 );
95
96 NTSTATUS
97 NTAPI
98 LdrLockLoaderLock(
99 IN ULONG Flags,
100 OUT PULONG Disposition OPTIONAL,
101 OUT PULONG Cookie OPTIONAL
102 );
103
104 NTSTATUS
105 NTAPI
106 LdrUnlockLoaderLock(
107 IN ULONG Flags,
108 IN ULONG Cookie OPTIONAL
109 );
110
111 BOOLEAN
112 NTAPI
113 LdrVerifyMappedImageMatchesChecksum(
114 IN PVOID BaseAddress,
115 IN SIZE_T NumberOfBytes,
116 IN ULONG FileLength
117 );
118
119 PIMAGE_BASE_RELOCATION
120 NTAPI
121 LdrProcessRelocationBlockLongLong(
122 IN ULONG_PTR Address,
123 IN ULONG Count,
124 IN PUSHORT TypeOffset,
125 IN LONGLONG Delta
126 );
127
128 NTSTATUS
129 NTAPI
130 LdrEnumerateLoadedModules(
131 IN BOOLEAN ReservedFlag,
132 IN PLDR_ENUM_CALLBACK EnumProc,
133 IN PVOID Context
134 );
135
136 #endif