diff --git a/dlls/ntdll/tests/wow64.c b/dlls/ntdll/tests/wow64.c index be2f2138933..9e09c60c32c 100644 --- a/dlls/ntdll/tests/wow64.c +++ b/dlls/ntdll/tests/wow64.c @@ -874,7 +874,7 @@ static void test_nt_wow64(void) ok( status == STATUS_PARTIAL_COPY || broken( status == STATUS_ACCESS_VIOLATION ), "NtWow64WriteVirtualMemory64 failed %x\n", status ); todo_wine - ok( !res, "wrong size %s\n", wine_dbgstr_longlong(res) ); + ok( !res || broken(res) /* win10 1709 */, "wrong size %s\n", wine_dbgstr_longlong(res) ); } ptr = 0x9876543210ull; status = pNtWow64AllocateVirtualMemory64( process, &ptr, 0, &size, @@ -882,7 +882,8 @@ static void test_nt_wow64(void) todo_wine ok( !status || broken( status == STATUS_CONFLICTING_ADDRESSES ), "NtWow64AllocateVirtualMemory64 failed %x\n", status ); - if (!status) ok( ptr == 0x9876540000ull, "wrong ptr %s\n", wine_dbgstr_longlong(ptr) ); + if (!status) ok( ptr == 0x9876540000ull || broken(ptr == 0x76540000), /* win 8.1 */ + "wrong ptr %s\n", wine_dbgstr_longlong(ptr) ); ptr = 0; status = pNtWow64AllocateVirtualMemory64( GetCurrentProcess(), &ptr, 0, &size, MEM_RESERVE | MEM_COMMIT, PAGE_READONLY ); @@ -1027,15 +1028,27 @@ static void test_init_block(void) CHECK_FUNC( init_block[5], "KiUserExceptionDispatcher" ); CHECK_FUNC( init_block[6], "KiUserApcDispatcher" ); CHECK_FUNC( init_block[7], "KiUserCallbackDispatcher" ); - CHECK_FUNC( init_block[8], "ExpInterlockedPopEntrySListFault" ); - CHECK_FUNC( init_block[9], "ExpInterlockedPopEntrySListResume" ); - CHECK_FUNC( init_block[10], "ExpInterlockedPopEntrySListEnd" ); - CHECK_FUNC( init_block[11], "RtlUserThreadStart" ); - CHECK_FUNC( init_block[12], "RtlpQueryProcessDebugInformationRemote" ); - ok( init_block[13] == (ULONG_PTR)ntdll, "got %p for ntdll %p\n", - (void *)(ULONG_PTR)init_block[13], ntdll ); - CHECK_FUNC( init_block[14], "LdrSystemDllInitBlock" ); - size = 15 * sizeof(*init_block); + if (GetProcAddress( ntdll, "ExpInterlockedPopEntrySListFault" )) + { + CHECK_FUNC( init_block[8], "ExpInterlockedPopEntrySListFault" ); + CHECK_FUNC( init_block[9], "ExpInterlockedPopEntrySListResume" ); + CHECK_FUNC( init_block[10], "ExpInterlockedPopEntrySListEnd" ); + CHECK_FUNC( init_block[11], "RtlUserThreadStart" ); + CHECK_FUNC( init_block[12], "RtlpQueryProcessDebugInformationRemote" ); + ok( init_block[13] == (ULONG_PTR)ntdll, "got %p for ntdll %p\n", + (void *)(ULONG_PTR)init_block[13], ntdll ); + CHECK_FUNC( init_block[14], "LdrSystemDllInitBlock" ); + size = 15 * sizeof(*init_block); + } + else /* win10 1607 */ + { + CHECK_FUNC( init_block[8], "RtlUserThreadStart" ); + CHECK_FUNC( init_block[9], "RtlpQueryProcessDebugInformationRemote" ); + ok( init_block[10] == (ULONG_PTR)ntdll, "got %p for ntdll %p\n", + (void *)(ULONG_PTR)init_block[10], ntdll ); + CHECK_FUNC( init_block[11], "LdrSystemDllInitBlock" ); + size = 12 * sizeof(*init_block); + } break; case 0xe0: /* win10 1809 */ case 0xf0: /* win10 2004 */