mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-15 03:04:47 +00:00
ntdll: Allow changes to DEP flags under Wow64.
This commit is contained in:
parent
7527869fe8
commit
ce5fe931e1
|
@ -73,9 +73,7 @@
|
|||
WINE_DEFAULT_DEBUG_CHANNEL(process);
|
||||
|
||||
|
||||
static ULONG execute_flags = MEM_EXECUTE_OPTION_DISABLE | (sizeof(void *) > sizeof(int) ?
|
||||
MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION |
|
||||
MEM_EXECUTE_OPTION_PERMANENT : 0);
|
||||
static ULONG execute_flags = MEM_EXECUTE_OPTION_DISABLE;
|
||||
|
||||
static UINT process_error_mode;
|
||||
|
||||
|
@ -1434,8 +1432,14 @@ NTSTATUS WINAPI NtQueryInformationProcess( HANDLE handle, PROCESSINFOCLASS class
|
|||
|
||||
case ProcessExecuteFlags:
|
||||
len = sizeof(ULONG);
|
||||
if (size == len) *(ULONG *)info = execute_flags;
|
||||
else ret = STATUS_INFO_LENGTH_MISMATCH;
|
||||
if (size != len)
|
||||
ret = STATUS_INFO_LENGTH_MISMATCH;
|
||||
else if (is_win64 && !NtCurrentTeb()->WowTebOffset)
|
||||
*(ULONG *)info = MEM_EXECUTE_OPTION_DISABLE |
|
||||
MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION |
|
||||
MEM_EXECUTE_OPTION_PERMANENT;
|
||||
else
|
||||
*(ULONG *)info = execute_flags;
|
||||
break;
|
||||
|
||||
case ProcessPriorityClass:
|
||||
|
@ -1560,7 +1564,7 @@ NTSTATUS WINAPI NtSetInformationProcess( HANDLE handle, PROCESSINFOCLASS class,
|
|||
break;
|
||||
|
||||
case ProcessExecuteFlags:
|
||||
if (is_win64 || size != sizeof(ULONG)) return STATUS_INVALID_PARAMETER;
|
||||
if ((is_win64 && !NtCurrentTeb()->WowTebOffset) || size != sizeof(ULONG)) return STATUS_INVALID_PARAMETER;
|
||||
if (execute_flags & MEM_EXECUTE_OPTION_PERMANENT) return STATUS_ACCESS_DENIED;
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue