From: Rémi Bernon rbernon@codeweavers.com
--- dlls/ntdll/tests/wow64.c | 14 +++++++++++--- dlls/ntdll/unix/process.c | 14 +++++++------- include/winternl.h | 9 --------- 3 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/dlls/ntdll/tests/wow64.c b/dlls/ntdll/tests/wow64.c index 04b6db728de..73e53106fd0 100644 --- a/dlls/ntdll/tests/wow64.c +++ b/dlls/ntdll/tests/wow64.c @@ -2597,10 +2597,18 @@ static void test_nt_wow64(void) } else win_skip( "NtWow64IsProcessorFeaturePresent not supported\n" );
- if (pNtWow64QueryInformationProcess64) + if (pNtWow64QueryInformationProcess64 && (is_wow64 || is_win64)) { + struct + { + NTSTATUS ExitStatus; + UINT64 PebBaseAddress; + UINT64 AffinityMask; + LONG BasePriority; + UINT64 UniqueProcessId; + UINT64 InheritedFromUniqueProcessId; + } pbi64; PROCESS_BASIC_INFORMATION pbi32; - PROCESS_BASIC_INFORMATION64 pbi64; ULONG expected_peb; ULONG class;
@@ -2641,7 +2649,7 @@ static void test_nt_wow64(void) winetest_pop_context(); } } - else win_skip( "NtWow64QueryInformationProcess64 not supported\n" ); + else skip( "NtWow64QueryInformationProcess64 not supported\n" );
NtClose( process ); } diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c index 4d5d23c47bb..5d5d2668b42 100644 --- a/dlls/ntdll/unix/process.c +++ b/dlls/ntdll/unix/process.c @@ -1637,10 +1637,10 @@ NTSTATUS WINAPI NtWow64QueryInformationProcess64( HANDLE handle, PROCESSINFOCLAS { case ProcessBasicInformation: { - PROCESS_BASIC_INFORMATION64 pbi; + PROCESS_BASIC_INFORMATION pbi; const ULONG_PTR affinity_mask = get_system_affinity_mask();
- if (size >= sizeof(PROCESS_BASIC_INFORMATION64)) + if (size >= sizeof(PROCESS_BASIC_INFORMATION)) { if (!info) ret = STATUS_ACCESS_VIOLATION; else @@ -1651,7 +1651,7 @@ NTSTATUS WINAPI NtWow64QueryInformationProcess64( HANDLE handle, PROCESSINFOCLAS if ((ret = wine_server_call( req )) == STATUS_SUCCESS) { pbi.ExitStatus = reply->exit_code; - pbi.PebBaseAddress = (ULONG)wine_server_get_ptr( reply->peb ); + pbi.PebBaseAddress = wine_server_get_ptr( reply->peb ); pbi.AffinityMask = reply->affinity & affinity_mask; pbi.BasePriority = reply->base_priority; pbi.UniqueProcessId = reply->pid; @@ -1660,14 +1660,14 @@ NTSTATUS WINAPI NtWow64QueryInformationProcess64( HANDLE handle, PROCESSINFOCLAS } SERVER_END_REQ;
- memcpy( info, &pbi, sizeof(PROCESS_BASIC_INFORMATION64) ); - len = sizeof(PROCESS_BASIC_INFORMATION64); + memcpy( info, &pbi, sizeof(PROCESS_BASIC_INFORMATION) ); + len = sizeof(PROCESS_BASIC_INFORMATION); } - if (size > sizeof(PROCESS_BASIC_INFORMATION64)) ret = STATUS_INFO_LENGTH_MISMATCH; + if (size > sizeof(PROCESS_BASIC_INFORMATION)) ret = STATUS_INFO_LENGTH_MISMATCH; } else { - len = sizeof(PROCESS_BASIC_INFORMATION64); + len = sizeof(PROCESS_BASIC_INFORMATION); ret = STATUS_INFO_LENGTH_MISMATCH; } } diff --git a/include/winternl.h b/include/winternl.h index 382a492775a..6e38778f005 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -2642,15 +2642,6 @@ typedef struct _PROCESS_BASIC_INFORMATION { #endif } PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION;
-typedef struct _PROCESS_BASIC_INFORMATION64 { - NTSTATUS ExitStatus; - UINT64 PebBaseAddress; - UINT64 AffinityMask; - LONG BasePriority; - UINT64 UniqueProcessId; - UINT64 InheritedFromUniqueProcessId; -} PROCESS_BASIC_INFORMATION64; - #define PROCESS_PRIOCLASS_IDLE 1 #define PROCESS_PRIOCLASS_NORMAL 2 #define PROCESS_PRIOCLASS_HIGH 3