mirror of
https://github.com/reactos/wine.git
synced 2024-11-29 06:30:37 +00:00
ntdll: Set the WOW64 flag according to the server supported CPUs.
This commit is contained in:
parent
279defe66e
commit
7e47d19d9a
@ -66,6 +66,7 @@ extern void virtual_init_threading(void);
|
|||||||
|
|
||||||
/* server support */
|
/* server support */
|
||||||
extern timeout_t server_start_time;
|
extern timeout_t server_start_time;
|
||||||
|
extern unsigned int server_cpus;
|
||||||
extern void server_init_process(void);
|
extern void server_init_process(void);
|
||||||
extern NTSTATUS server_init_process_done(void);
|
extern NTSTATUS server_init_process_done(void);
|
||||||
extern size_t server_init_thread( void *entry_point );
|
extern size_t server_init_thread( void *entry_point );
|
||||||
|
@ -305,10 +305,14 @@ NTSTATUS WINAPI NtQueryInformationProcess(
|
|||||||
else ret = STATUS_INFO_LENGTH_MISMATCH;
|
else ret = STATUS_INFO_LENGTH_MISMATCH;
|
||||||
break;
|
break;
|
||||||
case ProcessWow64Information:
|
case ProcessWow64Information:
|
||||||
if (ProcessInformationLength == 4)
|
if (ProcessInformationLength == sizeof(DWORD))
|
||||||
{
|
{
|
||||||
memset(ProcessInformation, 0, ProcessInformationLength);
|
#ifdef __i386__
|
||||||
len = 4;
|
*(DWORD *)ProcessInformation = (server_cpus & (1 << CPU_x86_64)) != 0;
|
||||||
|
#else
|
||||||
|
*(DWORD *)ProcessInformation = FALSE;
|
||||||
|
#endif
|
||||||
|
len = sizeof(DWORD);
|
||||||
}
|
}
|
||||||
else ret = STATUS_INFO_LENGTH_MISMATCH;
|
else ret = STATUS_INFO_LENGTH_MISMATCH;
|
||||||
break;
|
break;
|
||||||
|
@ -90,6 +90,8 @@ static const enum cpu_type client_cpu = CPU_SPARC;
|
|||||||
#error Unsupported CPU
|
#error Unsupported CPU
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
unsigned int server_cpus = 0;
|
||||||
|
|
||||||
#ifndef HAVE_STRUCT_MSGHDR_MSG_ACCRIGHTS
|
#ifndef HAVE_STRUCT_MSGHDR_MSG_ACCRIGHTS
|
||||||
/* data structure used to pass an fd with sendmsg/recvmsg */
|
/* data structure used to pass an fd with sendmsg/recvmsg */
|
||||||
struct cmsg_fd
|
struct cmsg_fd
|
||||||
@ -1050,6 +1052,7 @@ size_t server_init_thread( void *entry_point )
|
|||||||
NtCurrentTeb()->ClientId.UniqueThread = ULongToHandle(reply->tid);
|
NtCurrentTeb()->ClientId.UniqueThread = ULongToHandle(reply->tid);
|
||||||
info_size = reply->info_size;
|
info_size = reply->info_size;
|
||||||
server_start_time = reply->server_start;
|
server_start_time = reply->server_start;
|
||||||
|
server_cpus = reply->all_cpus;
|
||||||
}
|
}
|
||||||
SERVER_END_REQ;
|
SERVER_END_REQ;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user