-/* $Id: rtl.c,v 1.17 2003/07/11 01:23:15 royce Exp $
+/* $Id: rtl.c,v 1.18 2003/12/30 18:52:05 fireball Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
PIMAGE_NT_HEADERS NTHeaders;
DosHeader = (PIMAGE_DOS_HEADER)BaseAddress;
- NTHeaders = (PIMAGE_NT_HEADERS)(BaseAddress + DosHeader->e_lfanew);
+ NTHeaders = (PIMAGE_NT_HEADERS)((char*)BaseAddress + DosHeader->e_lfanew);
if ((DosHeader->e_magic != IMAGE_DOS_MAGIC)
|| (DosHeader->e_lfanew == 0L)
|| (*(PULONG) NTHeaders != IMAGE_PE_MAGIC))
*Size = NtHeader->OptionalHeader.DataDirectory[Directory].Size;
if (ImageLoaded)
- return (PVOID)(BaseAddress + Va);
+ return (PVOID)((char*)BaseAddress + Va);
/* image mapped as ordinary file, we must find raw pointer */
SectionHeader = (PIMAGE_SECTION_HEADER)(NtHeader + 1);
while (Count--)
{
if (SectionHeader->VirtualAddress == Va)
- return (PVOID)(BaseAddress + SectionHeader->PointerToRawData);
+ return (PVOID)((char*)BaseAddress + SectionHeader->PointerToRawData);
SectionHeader++;
}
*SectionHeader = Section;
}
- return (ULONG)(BaseAddress +
+ return (ULONG)((char*)BaseAddress +
Rva +
Section->PointerToRawData -
Section->VirtualAddress);
return(STATUS_INVALID_PARAMETER);
}
- AddressPtr = (PULONG)RVA(BaseAddress, ExportDir->AddressOfFunctions);
+ AddressPtr = (PULONG)RVA((char*)BaseAddress, ExportDir->AddressOfFunctions);
if (Name && Name->Length)
{
ULONG minn, maxn;
/* by name */
OrdinalPtr =
- (PUSHORT)RVA(BaseAddress, ExportDir->AddressOfNameOrdinals);
- NamePtr = (PULONG)RVA(BaseAddress, ExportDir->AddressOfNames);
+ (PUSHORT)RVA((char*)BaseAddress, ExportDir->AddressOfNameOrdinals);
+ NamePtr = (PULONG)RVA((char*)BaseAddress, ExportDir->AddressOfNames);
minn = 0; maxn = ExportDir->NumberOfNames;
while (minn <= maxn)
LONG res;
mid = (minn + maxn) / 2;
- res = _strnicmp(Name->Buffer, (PCH)RVA(BaseAddress, NamePtr[mid]),
+ res = _strnicmp(Name->Buffer, (PCH)RVA((char*)BaseAddress, NamePtr[mid]),
Name->Length);
if (res == 0)
{
*ProcedureAddress =
- (PVOID)RVA(BaseAddress, AddressPtr[OrdinalPtr[mid]]);
+ (PVOID)RVA((char*)BaseAddress, AddressPtr[OrdinalPtr[mid]]);
return(STATUS_SUCCESS);
}
else if (res > 0)
for (i = 0; i < ExportDir->NumberOfNames; i++, NamePtr++, OrdinalPtr++)
{
if (!_strnicmp(Name->Buffer,
- (char*)(BaseAddress + *NamePtr), Name->Length))
+ (char*)((char*)BaseAddress + *NamePtr), Name->Length))
{
*ProcedureAddress =
(PVOID)((ULONG)BaseAddress +