Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/kernel32/tests/virtual.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c index 0b718606d0e..0387e157ac7 100644 --- a/dlls/kernel32/tests/virtual.c +++ b/dlls/kernel32/tests/virtual.c @@ -1265,8 +1265,8 @@ static void test_NtMapViewOfSection(void) size = 0; offset.QuadPart = 0; status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - todo_wine - ok( status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %x\n", status ); + ok( status == STATUS_SUCCESS || status == STATUS_NO_MEMORY, + "NtMapViewOfSection returned %x\n", status ); if (status == STATUS_SUCCESS) { status = pNtUnmapViewOfSection( hProcess, ptr2 ); @@ -1288,7 +1288,8 @@ static void test_NtMapViewOfSection(void) ptr2 = NULL; size = 0; status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 22, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_INVALID_PARAMETER_4, "NtMapViewOfSection returned %x\n", status ); + ok( status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %x\n", status ); if (status == STATUS_SUCCESS) { status = pNtUnmapViewOfSection( hProcess, ptr2 ); @@ -1328,25 +1329,29 @@ static void test_NtMapViewOfSection(void) size = 0; offset.QuadPart = 0; status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_INVALID_PARAMETER_4, "NtMapViewOfSection returned %x\n", status ); + ok( status == STATUS_INVALID_PARAMETER_4 || broken(status == STATUS_MAPPED_ALIGNMENT) /* w1064v1809 */, + "NtMapViewOfSection returned %x\n", status );
ptr2 = (char *)ptr + 0x1000; size = 0; offset.QuadPart = 0; status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_INVALID_PARAMETER_4, "NtMapViewOfSection returned %x\n", status ); + ok( status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %x\n", status );
ptr2 = (char *)ptr + 0x1001; size = 0; offset.QuadPart = 0; status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_INVALID_PARAMETER_4, "NtMapViewOfSection returned %x\n", status ); + ok( status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %x\n", status );
ptr2 = (char *)ptr + 0x1000; size = 0; offset.QuadPart = 1; status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_INVALID_PARAMETER_4, "NtMapViewOfSection returned %x\n", status ); + ok( status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %x\n", status );
if (sizeof(void *) == sizeof(int) && (!pIsWow64Process || !pIsWow64Process( GetCurrentProcess(), &is_wow64 ) || !is_wow64)) @@ -1409,7 +1414,8 @@ static void test_NtMapViewOfSection(void) status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); todo_wine - ok( status == STATUS_INVALID_PARAMETER_9, "NtMapViewOfSection returned %x\n", status ); + ok( status == STATUS_INVALID_PARAMETER_9 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %x\n", status ); }
status = pNtUnmapViewOfSection( hProcess, ptr );
For some reason, the broken test returning STATUS_MAPPED_ALIGNMENT on w1064v1809 is now working as expected.
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/kernel32/tests/virtual.c | 158 ---------------------------- dlls/ntdll/tests/virtual.c | 187 ++++++++++++++++++++++++++++++++++ 2 files changed, 187 insertions(+), 158 deletions(-)
diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c index 0387e157ac7..4b37dbcadc5 100644 --- a/dlls/kernel32/tests/virtual.c +++ b/dlls/kernel32/tests/virtual.c @@ -1260,164 +1260,6 @@ static void test_NtMapViewOfSection(void) ok( result == sizeof(buffer), "ReadProcessMemory didn't read all data (%lx)\n", result ); ok( !memcmp( buffer, data, sizeof(buffer) ), "Wrong data read\n" );
- /* for some unknown reason NtMapViewOfSection fails with STATUS_NO_MEMORY when zero_bits != 0 ? */ - ptr2 = NULL; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_SUCCESS || status == STATUS_NO_MEMORY, - "NtMapViewOfSection returned %x\n", status ); - if (status == STATUS_SUCCESS) - { - status = pNtUnmapViewOfSection( hProcess, ptr2 ); - ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); - } - - ptr2 = NULL; - size = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - todo_wine - ok( status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %x\n", status ); - if (status == STATUS_SUCCESS) - { - status = pNtUnmapViewOfSection( hProcess, ptr2 ); - ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); - } - - /* 22 zero bits isn't acceptable */ - ptr2 = NULL; - size = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 22, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, - "NtMapViewOfSection returned %x\n", status ); - if (status == STATUS_SUCCESS) - { - status = pNtUnmapViewOfSection( hProcess, ptr2 ); - ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); - } - - /* mapping at the same page conflicts */ - ptr2 = ptr; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %x\n", status ); - - /* offset has to be aligned */ - ptr2 = ptr; - size = 0; - offset.QuadPart = 1; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %x\n", status ); - - /* ptr has to be aligned */ - ptr2 = (char *)ptr + 42; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %x\n", status ); - - /* still not 64k aligned */ - ptr2 = (char *)ptr + 0x1000; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %x\n", status ); - - /* zero_bits != 0 is not allowed when an address is set */ - ptr2 = (char *)ptr + 0x1000; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_INVALID_PARAMETER_4 || broken(status == STATUS_MAPPED_ALIGNMENT) /* w1064v1809 */, - "NtMapViewOfSection returned %x\n", status ); - - ptr2 = (char *)ptr + 0x1000; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, - "NtMapViewOfSection returned %x\n", status ); - - ptr2 = (char *)ptr + 0x1001; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, - "NtMapViewOfSection returned %x\n", status ); - - ptr2 = (char *)ptr + 0x1000; - size = 0; - offset.QuadPart = 1; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, - "NtMapViewOfSection returned %x\n", status ); - - if (sizeof(void *) == sizeof(int) && (!pIsWow64Process || - !pIsWow64Process( GetCurrentProcess(), &is_wow64 ) || !is_wow64)) - { - /* new memory region conflicts with previous mapping */ - ptr2 = ptr; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, - &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); - ok( status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %x\n", status ); - - ptr2 = (char *)ptr + 42; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, - &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); - ok( status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %x\n", status ); - - /* in contrary to regular NtMapViewOfSection, only 4kb align is enforced */ - ptr2 = (char *)ptr + 0x1000; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, - &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); - ok( status == STATUS_SUCCESS, "NtMapViewOfSection returned %x\n", status ); - ok( (char *)ptr2 == (char *)ptr + 0x1000, - "expected address %p, got %p\n", (char *)ptr + 0x1000, ptr2 ); - status = pNtUnmapViewOfSection( hProcess, ptr2 ); - ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); - - /* the address is rounded down if not on a page boundary */ - ptr2 = (char *)ptr + 0x1001; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, - &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); - ok( status == STATUS_SUCCESS, "NtMapViewOfSection returned %x\n", status ); - ok( (char *)ptr2 == (char *)ptr + 0x1000, - "expected address %p, got %p\n", (char *)ptr + 0x1000, ptr2 ); - status = pNtUnmapViewOfSection( hProcess, ptr2 ); - ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); - - ptr2 = (char *)ptr + 0x2000; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, - &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); - ok( status == STATUS_SUCCESS, "NtMapViewOfSection returned %x\n", status ); - ok( (char *)ptr2 == (char *)ptr + 0x2000, - "expected address %p, got %p\n", (char *)ptr + 0x2000, ptr2 ); - status = pNtUnmapViewOfSection( hProcess, ptr2 ); - ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); - } - else - { - ptr2 = (char *)ptr + 0x1000; - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, - &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); - todo_wine - ok( status == STATUS_INVALID_PARAMETER_9 || status == STATUS_INVALID_PARAMETER, - "NtMapViewOfSection returned %x\n", status ); - } - status = pNtUnmapViewOfSection( hProcess, ptr ); ok( !status, "NtUnmapViewOfSection failed status %x\n", status );
diff --git a/dlls/ntdll/tests/virtual.c b/dlls/ntdll/tests/virtual.c index ff10508a604..be1f82f4d53 100644 --- a/dlls/ntdll/tests/virtual.c +++ b/dlls/ntdll/tests/virtual.c @@ -167,6 +167,192 @@ static void test_AllocateVirtualMemory(void) ok(status == STATUS_SUCCESS, "NtFreeVirtualMemory failed\n"); }
+static void test_MapViewOfSection(void) +{ + HANDLE mapping, process = NtCurrentProcess(); + void *ptr, *ptr2; + BOOL is_wow64; + DWORD status; + SIZE_T size; + LARGE_INTEGER offset, map_size; + + map_size.QuadPart = 0x1000; + status = NtCreateSection(&mapping, SECTION_MAP_READ | SECTION_MAP_WRITE, NULL, + &map_size, PAGE_READWRITE, SEC_COMMIT, NULL); + ok(status == STATUS_SUCCESS, "NtCreateSection returned %08x\n", status); + ok(mapping != 0, "NtCreateSection failed\n"); + + ptr = NULL; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status); + ok(!((ULONG_PTR)ptr & 0xffff), "returned memory %p is not aligned to 64k\n", ptr); + + /* for some unknown reason NtMapViewOfSection fails with STATUS_NO_MEMORY when zero_bits != 0 ? */ + ptr2 = NULL; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_SUCCESS || status == STATUS_NO_MEMORY, + "NtMapViewOfSection returned %08x\n", status); + if (status == STATUS_SUCCESS) + { + status = NtUnmapViewOfSection(process, ptr2); + ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); + } + + ptr2 = NULL; + size = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE); + todo_wine + ok(status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %08x\n", status); + if (status == STATUS_SUCCESS) + { + status = NtUnmapViewOfSection(process, ptr2); + ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); + } + + /* 22 zero bits isn't acceptable */ + ptr2 = NULL; + size = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 22, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %08x\n", status); + + /* mapping at the same page conflicts */ + ptr2 = ptr; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %08x\n", status); + + /* offset has to be aligned */ + ptr2 = ptr; + size = 0; + offset.QuadPart = 1; + status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %08x\n", status); + + /* ptr has to be aligned */ + ptr2 = (char *)ptr + 42; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %08x\n", status); + + /* still not 64k aligned */ + ptr2 = (char *)ptr + 0x1000; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %08x\n", status); + + /* zero_bits != 0 is not allowed when an address is set */ + ptr2 = (char *)ptr + 0x1000; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %08x\n", status); + + ptr2 = (char *)ptr + 0x1000; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %08x\n", status); + + ptr2 = (char *)ptr + 0x1001; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %08x\n", status); + + ptr2 = (char *)ptr + 0x1000; + size = 0; + offset.QuadPart = 1; + status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %08x\n", status); + + if (sizeof(void *) == sizeof(int) && (!pIsWow64Process || + !pIsWow64Process(NtCurrentProcess(), &is_wow64) || !is_wow64)) + { + /* new memory region conflicts with previous mapping */ + ptr2 = ptr; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); + ok(status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %08x\n", status); + + ptr2 = (char *)ptr + 42; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); + ok(status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %08x\n", status); + + /* in contrary to regular NtMapViewOfSection, only 4kb align is enforced */ + ptr2 = (char *)ptr + 0x1000; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); + ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status); + ok((char *)ptr2 == (char *)ptr + 0x1000, + "expected address %p, got %p\n", (char *)ptr + 0x1000, ptr2); + status = NtUnmapViewOfSection(process, ptr2); + ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); + + /* the address is rounded down if not on a page boundary */ + ptr2 = (char *)ptr + 0x1001; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); + ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status); + ok((char *)ptr2 == (char *)ptr + 0x1000, + "expected address %p, got %p\n", (char *)ptr + 0x1000, ptr2); + status = NtUnmapViewOfSection(process, ptr2); + ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); + + ptr2 = (char *)ptr + 0x2000; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); + ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status); + ok((char *)ptr2 == (char *)ptr + 0x2000, + "expected address %p, got %p\n", (char *)ptr + 0x2000, ptr2); + status = NtUnmapViewOfSection(process, ptr2); + ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); + } + else + { + ptr2 = (char *)ptr + 0x1000; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); + todo_wine + ok(status == STATUS_INVALID_PARAMETER_9 || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %08x\n", status); + if (status == STATUS_SUCCESS) + { + status = NtUnmapViewOfSection(process, ptr2); + ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); + } + } + + status = NtUnmapViewOfSection(process, ptr); + ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); + + NtClose(mapping); +} + START_TEST(virtual) { SYSTEM_BASIC_INFORMATION sbi; @@ -179,4 +365,5 @@ START_TEST(virtual) trace("system page size %#x\n", sbi.PageSize);
test_AllocateVirtualMemory(); + test_MapViewOfSection(); }
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=53694
Your paranoid android.
=== wvistau64 (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== wvistau64_zh_CN (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== wvistau64_fr (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== wvistau64_he (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== w2008s64 (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== w7u (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== w7pro64 (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== w8 (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== w8adm (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== w864 (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== w1064v1507 (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
=== w1064v1809 (32 bit report) ===
kernel32: virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 0, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2698: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2712: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2837: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2855: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2936: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2960: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2642: Test failed: expected policy flags 1, got 3 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:2741: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2756: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2804: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2819: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3000: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3025: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2604: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2643: Test failed: expected policy permanent FALSE, got 1 virtual.c:3062: Test failed: NtSetInformationProcess failed with status c0000022
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/ntdll/tests/virtual.c | 75 +++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 25 deletions(-)
diff --git a/dlls/ntdll/tests/virtual.c b/dlls/ntdll/tests/virtual.c index be1f82f4d53..2dc423355e5 100644 --- a/dlls/ntdll/tests/virtual.c +++ b/dlls/ntdll/tests/virtual.c @@ -39,21 +39,24 @@ static void test_AllocateVirtualMemory(void) /* simple allocation should success */ size = 0x1000; addr1 = NULL; - status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr1, 0, &size, + zero_bits = 0; + status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr1, zero_bits, &size, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); ok(status == STATUS_SUCCESS, "NtAllocateVirtualMemory returned %08x\n", status);
/* allocation conflicts because of 64k align */ size = 0x1000; addr2 = (char *)addr1 + 0x1000; - status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 0, &size, + zero_bits = 0; + status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); ok(status == STATUS_CONFLICTING_ADDRESSES, "NtAllocateVirtualMemory returned %08x\n", status);
/* it should conflict, even when zero_bits is explicitly set */ size = 0x1000; addr2 = (char *)addr1 + 0x1000; - status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 12, &size, + zero_bits = 12; + status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); ok(status == STATUS_CONFLICTING_ADDRESSES, "NtAllocateVirtualMemory returned %08x\n", status); if (status == STATUS_SUCCESS) @@ -67,7 +70,7 @@ static void test_AllocateVirtualMemory(void) size = 0x1000; addr2 = NULL; zero_bits = 1; - status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 1, &size, + status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); ok(status == STATUS_SUCCESS || status == STATUS_NO_MEMORY || broken(status == STATUS_INVALID_PARAMETER_3) /* winxp */, @@ -106,7 +109,8 @@ static void test_AllocateVirtualMemory(void) /* 21 zero bits never succeeds */ size = 0x1000; addr2 = NULL; - status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 21, &size, + zero_bits = 21; + status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); todo_wine ok(status == STATUS_NO_MEMORY || status == STATUS_INVALID_PARAMETER, @@ -121,7 +125,8 @@ static void test_AllocateVirtualMemory(void) /* 22 zero bits is invalid */ size = 0x1000; addr2 = NULL; - status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 22, &size, + zero_bits = 22; + status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); ok(status == STATUS_INVALID_PARAMETER_3 || status == STATUS_INVALID_PARAMETER, "NtAllocateVirtualMemory returned %08x\n", status); @@ -157,7 +162,8 @@ static void test_AllocateVirtualMemory(void) /* AT_ROUND_TO_PAGE flag is not supported for NtAllocateVirtualMemory */ size = 0x1000; addr2 = (char *)addr1 + 0x1000; - status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 0, &size, + zero_bits = 0; + status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size, MEM_RESERVE | MEM_COMMIT | AT_ROUND_TO_PAGE, PAGE_EXECUTE_READWRITE); ok(status == STATUS_INVALID_PARAMETER_5 || status == STATUS_INVALID_PARAMETER, "NtAllocateVirtualMemory returned %08x\n", status); @@ -175,6 +181,7 @@ static void test_MapViewOfSection(void) DWORD status; SIZE_T size; LARGE_INTEGER offset, map_size; + ULONG zero_bits;
map_size.QuadPart = 0x1000; status = NtCreateSection(&mapping, SECTION_MAP_READ | SECTION_MAP_WRITE, NULL, @@ -184,16 +191,18 @@ static void test_MapViewOfSection(void)
ptr = NULL; size = 0; + zero_bits = 0; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE); + status = NtMapViewOfSection(mapping, process, &ptr, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status); ok(!((ULONG_PTR)ptr & 0xffff), "returned memory %p is not aligned to 64k\n", ptr);
/* for some unknown reason NtMapViewOfSection fails with STATUS_NO_MEMORY when zero_bits != 0 ? */ ptr2 = NULL; size = 0; + zero_bits = 12; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE); + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_SUCCESS || status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %08x\n", status); if (status == STATUS_SUCCESS) @@ -204,7 +213,8 @@ static void test_MapViewOfSection(void)
ptr2 = NULL; size = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE); + zero_bits = 16; + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); todo_wine ok(status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %08x\n", status); if (status == STATUS_SUCCESS) @@ -216,64 +226,73 @@ static void test_MapViewOfSection(void) /* 22 zero bits isn't acceptable */ ptr2 = NULL; size = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 22, 0, &offset, &size, 1, 0, PAGE_READWRITE); + zero_bits = 22; + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, "NtMapViewOfSection returned %08x\n", status);
/* mapping at the same page conflicts */ ptr2 = ptr; size = 0; + zero_bits = 0; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE); + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %08x\n", status);
/* offset has to be aligned */ ptr2 = ptr; size = 0; + zero_bits = 0; offset.QuadPart = 1; - status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE); + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %08x\n", status);
/* ptr has to be aligned */ ptr2 = (char *)ptr + 42; size = 0; + zero_bits = 0; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE); + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %08x\n", status);
/* still not 64k aligned */ ptr2 = (char *)ptr + 0x1000; size = 0; + zero_bits = 0; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE); + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %08x\n", status);
/* zero_bits != 0 is not allowed when an address is set */ ptr2 = (char *)ptr + 0x1000; size = 0; + zero_bits = 12; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE); + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, "NtMapViewOfSection returned %08x\n", status);
ptr2 = (char *)ptr + 0x1000; size = 0; + zero_bits = 16; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE); + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, "NtMapViewOfSection returned %08x\n", status);
ptr2 = (char *)ptr + 0x1001; size = 0; + zero_bits = 16; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE); + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, "NtMapViewOfSection returned %08x\n", status);
ptr2 = (char *)ptr + 0x1000; size = 0; + zero_bits = 16; offset.QuadPart = 1; - status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE); + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, "NtMapViewOfSection returned %08x\n", status);
@@ -283,23 +302,26 @@ static void test_MapViewOfSection(void) /* new memory region conflicts with previous mapping */ ptr2 = ptr; size = 0; + zero_bits = 0; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); ok(status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %08x\n", status);
ptr2 = (char *)ptr + 42; size = 0; + zero_bits = 0; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); ok(status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %08x\n", status);
/* in contrary to regular NtMapViewOfSection, only 4kb align is enforced */ ptr2 = (char *)ptr + 0x1000; size = 0; + zero_bits = 0; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status); ok((char *)ptr2 == (char *)ptr + 0x1000, @@ -310,8 +332,9 @@ static void test_MapViewOfSection(void) /* the address is rounded down if not on a page boundary */ ptr2 = (char *)ptr + 0x1001; size = 0; + zero_bits = 0; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status); ok((char *)ptr2 == (char *)ptr + 0x1000, @@ -321,8 +344,9 @@ static void test_MapViewOfSection(void)
ptr2 = (char *)ptr + 0x2000; size = 0; + zero_bits = 0; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status); ok((char *)ptr2 == (char *)ptr + 0x2000, @@ -334,8 +358,9 @@ static void test_MapViewOfSection(void) { ptr2 = (char *)ptr + 0x1000; size = 0; + zero_bits = 0; offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE); todo_wine ok(status == STATUS_INVALID_PARAMETER_9 || status == STATUS_INVALID_PARAMETER,
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=53695
Your paranoid android.
=== w1064v1809 (32 bit report) ===
ntdll: virtual.c:272: Test failed: NtMapViewOfSection returned c0000220
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/ntdll/tests/virtual.c | 89 +++++++++++++++++++++++++------------- 1 file changed, 60 insertions(+), 29 deletions(-)
diff --git a/dlls/ntdll/tests/virtual.c b/dlls/ntdll/tests/virtual.c index 2dc423355e5..cc4870949b1 100644 --- a/dlls/ntdll/tests/virtual.c +++ b/dlls/ntdll/tests/virtual.c @@ -197,40 +197,95 @@ static void test_MapViewOfSection(void) ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status); ok(!((ULONG_PTR)ptr & 0xffff), "returned memory %p is not aligned to 64k\n", ptr);
- /* for some unknown reason NtMapViewOfSection fails with STATUS_NO_MEMORY when zero_bits != 0 ? */ + /* 1 zero bits should zero 63-31 upper bits */ ptr2 = NULL; size = 0; - zero_bits = 12; + zero_bits = 1; offset.QuadPart = 0; status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_SUCCESS || status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %08x\n", status); if (status == STATUS_SUCCESS) { + todo_wine_if((UINT_PTR)ptr2 >> (32 - zero_bits)) + ok(((UINT_PTR)ptr2 >> (32 - zero_bits)) == 0, + "NtMapViewOfSection returned address: %p\n", ptr2); + status = NtUnmapViewOfSection(process, ptr2); ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); }
+ for (zero_bits = 2; zero_bits <= 20; zero_bits++) + { + ptr2 = NULL; + size = 0; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); + ok(status == STATUS_SUCCESS || status == STATUS_NO_MEMORY, + "NtMapViewOfSection with %d zero_bits returned %08x\n", zero_bits, status); + if (status == STATUS_SUCCESS) + { + todo_wine_if((UINT_PTR)ptr2 >> (32 - zero_bits)) + ok(((UINT_PTR)ptr2 >> (32 - zero_bits)) == 0, + "NtMapViewOfSection with %d zero_bits returned address %p\n", zero_bits, ptr2); + + status = NtUnmapViewOfSection(process, ptr2); + ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); + } + } + + /* 21 zero bits never succeeds */ ptr2 = NULL; size = 0; - zero_bits = 16; + zero_bits = 21; + offset.QuadPart = 0; status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); todo_wine - ok(status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %08x\n", status); + ok(status == STATUS_NO_MEMORY || status == STATUS_INVALID_PARAMETER, + "NtMapViewOfSection returned %08x\n", status); if (status == STATUS_SUCCESS) { status = NtUnmapViewOfSection(process, ptr2); ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); }
- /* 22 zero bits isn't acceptable */ + /* 22 zero bits is invalid */ ptr2 = NULL; size = 0; zero_bits = 22; + offset.QuadPart = 0; status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, "NtMapViewOfSection returned %08x\n", status);
+ /* zero bits > 31 should be considered as bitmask on 64bit and WoW64 */ + ptr2 = NULL; + size = 0; + zero_bits = 0x1fffffff; + offset.QuadPart = 0; + status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); + + if (sizeof(void *) == sizeof(int) && (!pIsWow64Process || + !pIsWow64Process(NtCurrentProcess(), &is_wow64) || !is_wow64)) + { + ok(status == STATUS_INVALID_PARAMETER_4, "NtMapViewOfSection returned %08x\n", status); + } + else + { + todo_wine + ok(status == STATUS_SUCCESS || status == STATUS_NO_MEMORY, + "NtMapViewOfSection returned %08x\n", status); + if (status == STATUS_SUCCESS) + { + todo_wine_if((UINT_PTR)ptr2 & ~zero_bits) + ok(((UINT_PTR)ptr2 & ~zero_bits) == 0, + "NtMapViewOfSection returned address %p\n", ptr2); + + status = NtUnmapViewOfSection(process, ptr2); + ok(status == STATUS_SUCCESS, "NtUnmapViewOfSection returned %08x\n", status); + } + } + /* mapping at the same page conflicts */ ptr2 = ptr; size = 0; @@ -266,36 +321,12 @@ static void test_MapViewOfSection(void) /* zero_bits != 0 is not allowed when an address is set */ ptr2 = (char *)ptr + 0x1000; size = 0; - zero_bits = 12; - offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); - ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, - "NtMapViewOfSection returned %08x\n", status); - - ptr2 = (char *)ptr + 0x1000; - size = 0; - zero_bits = 16; - offset.QuadPart = 0; - status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); - ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, - "NtMapViewOfSection returned %08x\n", status); - - ptr2 = (char *)ptr + 0x1001; - size = 0; zero_bits = 16; offset.QuadPart = 0; status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, "NtMapViewOfSection returned %08x\n", status);
- ptr2 = (char *)ptr + 0x1000; - size = 0; - zero_bits = 16; - offset.QuadPart = 1; - status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE); - ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER, - "NtMapViewOfSection returned %08x\n", status); - if (sizeof(void *) == sizeof(int) && (!pIsWow64Process || !pIsWow64Process(NtCurrentProcess(), &is_wow64) || !is_wow64)) {
See 00451d5edf9a13fd8f414a0d06869e38cf66b754
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/ntdll/tests/virtual.c | 1 - dlls/ntdll/virtual.c | 34 ++++++++++++++++++---------------- 2 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/dlls/ntdll/tests/virtual.c b/dlls/ntdll/tests/virtual.c index cc4870949b1..31365aa206f 100644 --- a/dlls/ntdll/tests/virtual.c +++ b/dlls/ntdll/tests/virtual.c @@ -272,7 +272,6 @@ static void test_MapViewOfSection(void) } else { - todo_wine ok(status == STATUS_SUCCESS || status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %08x\n", status); if (status == STATUS_SUCCESS) diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c index 86377af0a8c..3c978b266d8 100644 --- a/dlls/ntdll/virtual.c +++ b/dlls/ntdll/virtual.c @@ -409,12 +409,12 @@ static struct file_view *VIRTUAL_FindView( const void *addr, size_t size ) /*********************************************************************** * get_mask */ -static inline UINT_PTR get_mask( ULONG zero_bits ) +static inline UINT_PTR get_mask( ULONG alignment ) { - if (!zero_bits) return 0xffff; /* allocations are aligned to 64K by default */ - if (zero_bits < page_shift) zero_bits = page_shift; - if (zero_bits > 21) return 0; - return (1 << zero_bits) - 1; + if (!alignment) return 0xffff; /* allocations are aligned to 64K by default */ + if (alignment < page_shift) alignment = page_shift; + if (alignment > 21) return 0; + return (1 << alignment) - 1; }
@@ -1361,7 +1361,8 @@ static NTSTATUS map_pe_header( void *ptr, size_t size, int fd, BOOL *removable ) * Map an executable (PE format) image into memory. */ static NTSTATUS map_image( HANDLE hmapping, ACCESS_MASK access, int fd, SIZE_T mask, - pe_image_info_t *image_info, int shared_fd, BOOL removable, PVOID *addr_ptr ) + pe_image_info_t *image_info, int shared_fd, BOOL removable, + PVOID *addr_ptr, SIZE_T zero_bits ) { IMAGE_DOS_HEADER *dos; IMAGE_NT_HEADERS *nt; @@ -1391,11 +1392,11 @@ static NTSTATUS map_image( HANDLE hmapping, ACCESS_MASK access, int fd, SIZE_T m
if (base >= (char *)address_space_start) /* make sure the DOS area remains free */ status = map_view( &view, base, total_size, mask, FALSE, SEC_IMAGE | SEC_FILE | - VPROT_COMMITTED | VPROT_READ | VPROT_EXEC | VPROT_WRITECOPY, 0 ); + VPROT_COMMITTED | VPROT_READ | VPROT_EXEC | VPROT_WRITECOPY, zero_bits );
if (status != STATUS_SUCCESS) status = map_view( &view, NULL, total_size, mask, FALSE, SEC_IMAGE | SEC_FILE | - VPROT_COMMITTED | VPROT_READ | VPROT_EXEC | VPROT_WRITECOPY, 0 ); + VPROT_COMMITTED | VPROT_READ | VPROT_EXEC | VPROT_WRITECOPY, zero_bits );
if (status != STATUS_SUCCESS) goto error;
@@ -1617,7 +1618,7 @@ NTSTATUS virtual_map_section( HANDLE handle, PVOID *addr_ptr, ULONG zero_bits, S NTSTATUS res; mem_size_t full_size; ACCESS_MASK access; - SIZE_T size, mask = get_mask( zero_bits ); + SIZE_T size, mask = get_mask( 0 ); int unix_handle = -1, needs_close; unsigned int vprot, sec_flags; struct file_view *view; @@ -1673,13 +1674,14 @@ NTSTATUS virtual_map_section( HANDLE handle, PVOID *addr_ptr, ULONG zero_bits, S if ((res = server_get_unix_fd( shared_file, FILE_READ_DATA|FILE_WRITE_DATA, &shared_fd, &shared_needs_close, NULL, NULL ))) goto done; res = map_image( handle, access, unix_handle, mask, image_info, - shared_fd, needs_close, addr_ptr ); + shared_fd, needs_close, addr_ptr, zero_bits ); if (shared_needs_close) close( shared_fd ); close_handle( shared_file ); } else { - res = map_image( handle, access, unix_handle, mask, image_info, -1, needs_close, addr_ptr ); + res = map_image( handle, access, unix_handle, mask, image_info, + -1, needs_close, addr_ptr, zero_bits ); } if (needs_close) close( unix_handle ); if (res >= 0) *size_ptr = image_info->map_size; @@ -1716,7 +1718,7 @@ NTSTATUS virtual_map_section( HANDLE handle, PVOID *addr_ptr, ULONG zero_bits, S get_vprot_flags( protect, &vprot, sec_flags & SEC_IMAGE ); vprot |= sec_flags; if (!(sec_flags & SEC_RESERVE)) vprot |= VPROT_COMMITTED; - res = map_view( &view, *addr_ptr, size, mask, FALSE, vprot, 0 ); + res = map_view( &view, *addr_ptr, size, mask, FALSE, vprot, zero_bits ); if (res) { server_leave_uninterrupted_section( &csVirtual, &sigset ); @@ -3098,7 +3100,7 @@ NTSTATUS WINAPI NtMapViewOfSection( HANDLE handle, HANDLE process, PVOID *addr_p SECTION_INHERIT inherit, ULONG alloc_type, ULONG protect ) { NTSTATUS res; - SIZE_T mask = get_mask( zero_bits ); + SIZE_T mask = get_mask( 0 ); pe_image_info_t image_info; LARGE_INTEGER offset;
@@ -3108,9 +3110,9 @@ NTSTATUS WINAPI NtMapViewOfSection( HANDLE handle, HANDLE process, PVOID *addr_p handle, process, *addr_ptr, offset.u.HighPart, offset.u.LowPart, *size_ptr, protect );
/* Check parameters */ - - if ((*addr_ptr && zero_bits) || !mask) - return STATUS_INVALID_PARAMETER_4; + if (*addr_ptr && zero_bits) return STATUS_INVALID_PARAMETER_4; + if (zero_bits > 21 && zero_bits < 32) return STATUS_INVALID_PARAMETER_4; + if (!is_win64 && !is_wow64 && zero_bits >= 32) return STATUS_INVALID_PARAMETER_4;
#ifndef _WIN64 if (!is_wow64 && (alloc_type & AT_ROUND_TO_PAGE))
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=53693
Your paranoid android.
=== wvistau64 (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== wvistau64_zh_CN (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== wvistau64_fr (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== wvistau64_he (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== w2008s64 (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== w7u (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== w7pro64 (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== w8 (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== w8adm (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== w864 (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== w1064v1507 (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
=== w1064v1809 (32 bit report) ===
kernel32: virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 0, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2856: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2870: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2995: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3013: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3094: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3118: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2800: Test failed: expected policy flags 1, got 3 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:2899: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2914: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2962: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:2977: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3158: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3183: Test failed: expected no STATUS_ACCESS_VIOLATION exception, got 1 exceptions virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2762: Test failed: NtSetInformationProcess failed with status c0000022 virtual.c:2801: Test failed: expected policy permanent FALSE, got 1 virtual.c:3220: Test failed: NtSetInformationProcess failed with status c0000022
I'll resend the patch set, one of the w1064v1809 test is failing inconsistently.