ntdll: Add support for NtSetInformationProcess(ProcessExecuteFlags).
Dmitry Timoshkov
dmitry at codeweavers.com
Thu Sep 4 03:37:23 CDT 2008
This patch is based on the information at http://www.uninformed.org/?v=2&a=4
---
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
--
1.6.0.1
More information about the wine-patches
mailing list