Dmitry Timoshkov : ntdll: Add support for NtSetInformationProcess( ProcessExecuteFlags).
Alexandre Julliard
julliard at winehq.org
Thu Sep 4 08:27:04 CDT 2008
Module: wine
Branch: master
Commit: 97f2cbc1ea01ba1bc6024d73739c7f459a1bf1f5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=97f2cbc1ea01ba1bc6024d73739c7f459a1bf1f5
Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date: Thu Sep 4 17:37:23 2008 +0900
ntdll: Add support for NtSetInformationProcess(ProcessExecuteFlags).
---
dlls/ntdll/process.c | 22 ++++++++++++++++++++++
include/winternl.h | 5 +++++
2 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
index 2a09390..3179d9c 100644
--- a/dlls/ntdll/process.c
+++ b/dlls/ntdll/process.c
@@ -389,6 +389,28 @@ NTSTATUS WINAPI NtSetInformationProcess(
SERVER_END_REQ;
}
break;
+
+ case ProcessExecuteFlags:
+ if (ProcessInformationLength != sizeof(ULONG))
+ return STATUS_INVALID_PARAMETER;
+ else
+ {
+ BOOL enable;
+ switch (*(ULONG *)ProcessInformation & (MEM_EXECUTE_OPTION_ENABLE|MEM_EXECUTE_OPTION_DISABLE))
+ {
+ case MEM_EXECUTE_OPTION_ENABLE:
+ enable = FALSE;
+ break;
+ case MEM_EXECUTE_OPTION_DISABLE:
+ enable = TRUE;
+ break;
+ default:
+ return STATUS_INVALID_PARAMETER;
+ }
+ VIRTUAL_SetForceExec( enable );
+ }
+ break;
+
default:
FIXME("(%p,0x%08x,%p,0x%08x) stub\n",
ProcessHandle,ProcessInformationClass,ProcessInformation,
diff --git a/include/winternl.h b/include/winternl.h
index 2dc1fc2..71169fa 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -665,9 +665,14 @@ typedef enum _PROCESSINFOCLASS {
ProcessDebugObjectHandle = 30,
ProcessDebugFlags = 31,
ProcessHandleTracing = 32,
+ ProcessExecuteFlags = 34,
MaxProcessInfoClass
} PROCESSINFOCLASS, PROCESS_INFORMATION_CLASS;
+#define MEM_EXECUTE_OPTION_DISABLE 0x01
+#define MEM_EXECUTE_OPTION_ENABLE 0x02
+#define MEM_EXECUTE_OPTION_PERMANENT 0x08
+
typedef enum _SECTION_INHERIT {
ViewShare = 1,
ViewUnmap = 2
More information about the wine-cvs
mailing list