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