25 #define DbgPrint printf 44 for (
i = 0;
i < LoaderBlock.ModsCount;
i++)
48 return &reactos_modules[
i];
61 PLOADER_MODULE ModuleObject;
63 strcpy(NameBuffer, ForwardName);
71 DbgPrint(
"LdrPEFixupForward: failed to find module %s\n", NameBuffer);
107 DbgPrint(
"LdrPEGetExportByName(): no export directory!\n");
114 DbgPrint(
"LdrPEGetExportByName(): symbol names missing entirely\n");
128 if (Hint < ExportDir->NumberOfNames)
133 Ordinal = ExOrdinals[Hint];
157 mid = (minn + maxn) / 2;
163 Ordinal = ExOrdinals[mid];
199 Ordinal = ExOrdinals[minn];
207 DbgPrint(
"LdrPEGetExportByName(): failed to find %s\n",SymbolName);
215 DbgPrint(
"Failed to get function %s\n", SymbolName);
220 DbgPrint(
"2: failed to find %s\n",SymbolName);
227 PLOADER_MODULE LoaderModule,
230 PVOID* ImportAddressList;
233 if (ImportModuleDirectory ==
NULL || ImportModuleDirectory->
Name == 0)
252 while (*FunctionNameList != 0
L)
254 if ((*FunctionNameList) & 0x80000000)
256 DbgPrint(
"Failed to import ordinal from %s\n", LoaderModule->String);
262 pe_name =
RVA(DriverBase, *FunctionNameList);
270 if ((*ImportAddressList) ==
NULL)
272 DbgPrint(
"Failed to import %s from %s\n", pe_name->
Name, LoaderModule->String);
288 IN PLOADER_MODULE* ImportedModule)
293 if (*ImportedModule ==
NULL)
304 if (*ImportedModule ==
NULL)
306 DbgPrint(
"Error loading import: %s\n", ImportedName);
322 PLOADER_MODULE ImportedModule;
331 while (ImportModuleDirectory && ImportModuleDirectory->
Name)
334 ImportedName = (
PCHAR) DllBase + ImportModuleDirectory->
Name;
344 ImportModuleDirectory++;
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
char * strstr(char *String1, char *String2)
struct _IMAGE_IMPORT_DESCRIPTOR * PIMAGE_IMPORT_DESCRIPTOR
IN PVOID IN PVOID IN USHORT IN USHORT Size
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char const char * ModuleName
BOOLEAN FrLdrLoadDriver(PCHAR szFileName, INT nPos)
DWORD AddressOfNameOrdinals
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
static const OBJECT_ATTRIBUTES const LARGE_INTEGER ULONG
PVOID NTAPI LdrPEFixupForward(IN PCHAR ForwardName)
PLOADER_MODULE NTAPI LdrGetModuleObject(PCHAR ModuleName)
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
NTSTATUS NTAPI LdrPEProcessImportDirectoryEntry(PVOID DriverBase, PLOADER_MODULE LoaderModule, PIMAGE_IMPORT_DESCRIPTOR ImportModuleDirectory)
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI LdrPEGetOrLoadModule(IN PCHAR ModuleName, IN PCHAR ImportedName, IN PLOADER_MODULE *ImportedModule)
static ULONG ULONG_PTR *static ULONG_PTR
#define STATUS_UNSUCCESSFUL
#define RtlImageDirectoryEntryToData
#define IMAGE_DIRECTORY_ENTRY_EXPORT
_CRTIMP char *__cdecl _strupr(_Inout_z_ char *_String)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
struct _IMAGE_EXPORT_DIRECTORY * PIMAGE_EXPORT_DIRECTORY
char * strchr(const char *String, int ch)
#define IMAGE_DIRECTORY_ENTRY_IMPORT
char * strcpy(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
NTSTATUS NTAPI LdrPEFixupImports(IN PVOID DllBase, IN PCHAR DllName)
PVOID NTAPI LdrPEGetExportByName(PVOID BaseAddress, PUCHAR SymbolName, USHORT Hint)