Dmitry Timoshkov : server: Add THREAD_[SET|QUERY] _LIMITED_INFORMATION to generic access mappings and appropriately change THREAD_ALL_ACCESS.

Alexandre Julliard julliard at winehq.org
Thu Feb 6 13:25:32 CST 2014


Module: wine
Branch: master
Commit: 383f7ba0024ef8722cebf80fc2b9832b095065ca
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=383f7ba0024ef8722cebf80fc2b9832b095065ca

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Thu Feb  6 20:48:49 2014 +0900

server: Add THREAD_[SET|QUERY]_LIMITED_INFORMATION to generic access mappings and appropriately change THREAD_ALL_ACCESS.

---

 include/winnt.h |    4 +++-
 server/thread.c |    7 ++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/include/winnt.h b/include/winnt.h
index ded7600..f785d33 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -4553,7 +4553,9 @@ typedef enum tagSID_NAME_USE {
 #define THREAD_SET_THREAD_TOKEN    0x0080
 #define THREAD_IMPERSONATE         0x0100
 #define THREAD_DIRECT_IMPERSONATION 0x0200
-#define THREAD_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3ff)
+#define THREAD_SET_LIMITED_INFORMATION   0x0400
+#define THREAD_QUERY_LIMITED_INFORMATION 0x0800
+#define THREAD_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xffff)
 
 #define THREAD_BASE_PRIORITY_LOWRT  15
 #define THREAD_BASE_PRIORITY_MAX    2
diff --git a/server/thread.c b/server/thread.c
index dd0b6b0..896ce0f 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -331,9 +331,10 @@ static int thread_signaled( struct object *obj, struct wait_queue_entry *entry )
 
 static unsigned int thread_map_access( struct object *obj, unsigned int access )
 {
-    if (access & GENERIC_READ)    access |= STANDARD_RIGHTS_READ | THREAD_QUERY_INFORMATION | THREAD_GET_CONTEXT;
-    if (access & GENERIC_WRITE)   access |= STANDARD_RIGHTS_WRITE | THREAD_SET_INFORMATION | THREAD_SET_CONTEXT | THREAD_TERMINATE | THREAD_SUSPEND_RESUME;
-    if (access & GENERIC_EXECUTE) access |= STANDARD_RIGHTS_EXECUTE | SYNCHRONIZE;
+    if (access & GENERIC_READ)    access |= STANDARD_RIGHTS_READ | THREAD_QUERY_INFORMATION | THREAD_GET_CONTEXT | THREAD_QUERY_LIMITED_INFORMATION;
+    if (access & GENERIC_WRITE)   access |= STANDARD_RIGHTS_WRITE | THREAD_SET_INFORMATION | THREAD_SET_CONTEXT |
+                                            THREAD_TERMINATE | THREAD_SUSPEND_RESUME | THREAD_SET_LIMITED_INFORMATION;
+    if (access & GENERIC_EXECUTE) access |= STANDARD_RIGHTS_EXECUTE | SYNCHRONIZE | THREAD_QUERY_LIMITED_INFORMATION;
     if (access & GENERIC_ALL)     access |= THREAD_ALL_ACCESS;
     return access & ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL);
 }




More information about the wine-cvs mailing list