179bbfe00e817a97b17f8abdc63b99f3506839d8
[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 BOOLEAN
62 LdrUnloadAlternateResourceModule(
63 IN PVOID BaseAddress
64 );
65
66 //
67 // Misc. Functions
68 //
69 NTSTATUS
70 NTAPI
71 LdrGetProcedureAddress(
72 IN PVOID BaseAddress,
73 IN PANSI_STRING Name,
74 IN ULONG Ordinal,
75 OUT PVOID *ProcedureAddress
76 );
77
78 ULONG
79 NTAPI
80 LdrRelocateImage(
81 IN PVOID NewBase,
82 IN PUCHAR LoaderName,
83 IN ULONG Success,
84 IN ULONG Conflict,
85 IN ULONG Invalid
86 );
87
88 NTSTATUS
89 LdrLockLoaderLock(
90 IN ULONG Flags,
91 OUT PULONG Disposition OPTIONAL,
92 OUT PULONG Cookie OPTIONAL
93 );
94
95 NTSTATUS
96 NTAPI
97 LdrUnlockLoaderLock(
98 IN ULONG Flags,
99 IN ULONG Cookie OPTIONAL
100 );
101
102 #endif