Zebediah Figura : kernel32: Implement SetProcessDEPPolicy().
Alexandre Julliard
julliard at winehq.org
Fri Jan 29 15:10:21 CST 2021
Module: wine
Branch: master
Commit: b62921245238412709d4e9f8a3548d37864d0d5d
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b62921245238412709d4e9f8a3548d37864d0d5d
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Thu Jan 28 22:08:22 2021 -0600
kernel32: Implement SetProcessDEPPolicy().
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernel32/process.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 227d49ea37e..085fff1454e 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -562,11 +562,19 @@ DEP_SYSTEM_POLICY_TYPE WINAPI GetSystemDEPPolicy(void)
/**********************************************************************
* SetProcessDEPPolicy (KERNEL32.@)
*/
-BOOL WINAPI SetProcessDEPPolicy(DWORD newDEP)
+BOOL WINAPI SetProcessDEPPolicy( DWORD flags )
{
- FIXME("(%d): stub\n", newDEP);
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return FALSE;
+ ULONG dep_flags = 0;
+
+ TRACE("%#x\n", flags);
+
+ if (flags & PROCESS_DEP_ENABLE)
+ dep_flags |= MEM_EXECUTE_OPTION_DISABLE | MEM_EXECUTE_OPTION_PERMANENT;
+ if (flags & PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION)
+ dep_flags |= MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION;
+
+ return set_ntstatus( NtSetInformationProcess( GetCurrentProcess(), ProcessExecuteFlags,
+ &dep_flags, sizeof(dep_flags) ) );
}
/**********************************************************************
More information about the wine-cvs
mailing list