=?UTF-8?Q?Andr=C3=A9=20Hentschel=20?=: kernel32/tests: Fill in the delay IAT to succeed on Win10.
Alexandre Julliard
julliard at winehq.org
Tue Aug 16 10:41:00 CDT 2016
Module: wine
Branch: master
Commit: bdd7be374723bb92b7f2f735c5ed91827acd4cb2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bdd7be374723bb92b7f2f735c5ed91827acd4cb2
Author: André Hentschel <nerv at dawncrow.de>
Date: Mon Aug 15 17:52:53 2016 +0200
kernel32/tests: Fill in the delay IAT to succeed on Win10.
Signed-off-by: André Hentschel <nerv at dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernel32/tests/loader.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
index 7585b9b..28449ac 100644
--- a/dlls/kernel32/tests/loader.c
+++ b/dlls/kernel32/tests/loader.c
@@ -2608,7 +2608,7 @@ static PVOID WINAPI failuredllhook(ULONG ul, DELAYLOAD_INFO* pd)
ok(!!pd->ThunkAddress, "no ThunkAddress supplied\n");
if (pd->ThunkAddress)
- ok(pd->ThunkAddress->u1.Ordinal == 0, "expected 0, got %x\n", (UINT)pd->ThunkAddress->u1.Ordinal);
+ ok(pd->ThunkAddress->u1.Ordinal, "no ThunkAddress value supplied\n");
ok(!!pd->TargetDllName, "no TargetDllName supplied\n");
if (pd->TargetDllName)
@@ -2782,9 +2782,20 @@ static void test_ResolveDelayLoadedAPI(void)
ret = WriteFile(hfile, test_func, sizeof(test_func), &dummy, NULL);
ok(ret, "WriteFile error %d\n", GetLastError());
- file_size = GetFileSize(hfile, NULL);
+ SetFilePointer( hfile, idd.ImportAddressTableRVA, NULL, SEEK_SET );
+
+ for (i = 0; i < sizeof(td)/sizeof(td[0]); i++)
+ {
+ /* 0x1a00 is an empty space between delay data and extended delay data, real thunks are not necessary */
+ itd32.u1.Function = nt_header.OptionalHeader.ImageBase + 0x1a00 + i * 0x20;
+ SetLastError(0xdeadbeef);
+ ret = WriteFile(hfile, &itd32, sizeof(itd32), &dummy, NULL);
+ ok(ret, "WriteFile error %d\n", GetLastError());
+ }
+
+ itd32.u1.Function = 0;
SetLastError(0xdeadbeef);
- ret = WriteFile(hfile, filler, idd.ImportNameTableRVA - file_size, &dummy, NULL);
+ ret = WriteFile(hfile, &itd32, sizeof(itd32), &dummy, NULL);
ok(ret, "WriteFile error %d\n", GetLastError());
for (i = 0; i < sizeof(td)/sizeof(td[0]); i++)
More information about the wine-cvs
mailing list