Changed the type of Function to PDWORD as on Windows.
diff --git a/include/winnt.h b/include/winnt.h
index 9b460ad..4255285 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -1958,7 +1958,7 @@
typedef struct _IMAGE_THUNK_DATA {
union {
LPBYTE ForwarderString;
- FARPROC Function;
+ PDWORD Function;
DWORD Ordinal;
PIMAGE_IMPORT_BY_NAME AddressOfData;
} u1;
diff --git a/loader/pe_image.c b/loader/pe_image.c
index dae4523..74ab2f8 100644
--- a/loader/pe_image.c
+++ b/loader/pe_image.c
@@ -311,24 +311,24 @@
int ordinal = IMAGE_ORDINAL(import_list->u1.Ordinal);
TRACE("--- Ordinal %s,%d\n", name, ordinal);
- thunk_list->u1.Function=MODULE_GetProcAddress(
+ thunk_list->u1.Function=(PDWORD)MODULE_GetProcAddress(
wmImp->module, (LPCSTR)ordinal, TRUE
);
if (!thunk_list->u1.Function) {
ERR("No implementation for %s.%d, setting to 0xdeadbeef\n",
name, ordinal);
- thunk_list->u1.Function = (FARPROC)0xdeadbeef;
+ thunk_list->u1.Function = (PDWORD)0xdeadbeef;
}
} else { /* import by name */
pe_name = (PIMAGE_IMPORT_BY_NAME)RVA(import_list->u1.AddressOfData);
TRACE("--- %s %s.%d\n", pe_name->Name, name, pe_name->Hint);
- thunk_list->u1.Function=MODULE_GetProcAddress(
+ thunk_list->u1.Function=(PDWORD)MODULE_GetProcAddress(
wmImp->module, pe_name->Name, TRUE
);
if (!thunk_list->u1.Function) {
ERR("No implementation for %s.%d(%s), setting to 0xdeadbeef\n",
name,pe_name->Hint,pe_name->Name);
- thunk_list->u1.Function = (FARPROC)0xdeadbeef;
+ thunk_list->u1.Function = (PDWORD)0xdeadbeef;
}
}
import_list++;
@@ -343,25 +343,25 @@
int ordinal = IMAGE_ORDINAL(thunk_list->u1.Ordinal);
TRACE("--- Ordinal %s.%d\n",name,ordinal);
- thunk_list->u1.Function=MODULE_GetProcAddress(
+ thunk_list->u1.Function=(PDWORD)MODULE_GetProcAddress(
wmImp->module, (LPCSTR) ordinal, TRUE
);
if (!thunk_list->u1.Function) {
ERR("No implementation for %s.%d, setting to 0xdeadbeef\n",
name,ordinal);
- thunk_list->u1.Function = (FARPROC)0xdeadbeef;
+ thunk_list->u1.Function = (PDWORD)0xdeadbeef;
}
} else {
pe_name=(PIMAGE_IMPORT_BY_NAME) RVA(thunk_list->u1.AddressOfData);
TRACE("--- %s %s.%d\n",
pe_name->Name,name,pe_name->Hint);
- thunk_list->u1.Function=MODULE_GetProcAddress(
+ thunk_list->u1.Function=(PDWORD)MODULE_GetProcAddress(
wmImp->module, pe_name->Name, TRUE
);
if (!thunk_list->u1.Function) {
ERR("No implementation for %s.%d(%s), setting to 0xdeadbeef\n",
name, pe_name->Hint, pe_name->Name);
- thunk_list->u1.Function = (FARPROC)0xdeadbeef;
+ thunk_list->u1.Function = (PDWORD)0xdeadbeef;
}
}
thunk_list++;