Alexandre Julliard : ntdll: Return the session id in NtQuerySystemInformation(SystemProcessInformation).

Alexandre Julliard julliard at winehq.org
Thu Jul 1 15:53:50 CDT 2021


Module: wine
Branch: master
Commit: b20cbd0d571302e33ab602fa6670a131ae4353ce
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=b20cbd0d571302e33ab602fa6670a131ae4353ce

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Jul  1 16:15:26 2021 +0200

ntdll: Return the session id in NtQuerySystemInformation(SystemProcessInformation).

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/unix/system.c       | 1 +
 include/wine/server_protocol.h | 4 ++--
 server/process.c               | 1 +
 server/protocol.def            | 2 +-
 server/trace.c                 | 4 ++--
 5 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c
index 0e601beec15..6bd642c30d1 100644
--- a/dlls/ntdll/unix/system.c
+++ b/dlls/ntdll/unix/system.c
@@ -2294,6 +2294,7 @@ NTSTATUS WINAPI NtQuerySystemInformation( SYSTEM_INFORMATION_CLASS class,
                 nt_process->dwBasePriority = server_process->priority;
                 nt_process->UniqueProcessId = UlongToHandle(server_process->pid);
                 nt_process->ParentProcessId = UlongToHandle(server_process->parent_pid);
+                nt_process->SessionId = server_process->session_id;
                 nt_process->HandleCount = server_process->handle_count;
                 get_thread_times( server_process->unix_pid, -1, &nt_process->KernelTime, &nt_process->UserTime );
                 fill_vm_counters( &nt_process->vmCounters, server_process->unix_pid );
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index 92ceaf9f8a4..d6815b7e349 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -2010,9 +2010,9 @@ struct process_info
     int             priority;
     process_id_t    pid;
     process_id_t    parent_pid;
+    unsigned int    session_id;
     int             handle_count;
     int             unix_pid;
-    int             __pad;
 
 
 };
@@ -6252,7 +6252,7 @@ union generic_reply
 
 /* ### protocol_version begin ### */
 
-#define SERVER_PROTOCOL_VERSION 722
+#define SERVER_PROTOCOL_VERSION 723
 
 /* ### protocol_version end ### */
 
diff --git a/server/process.c b/server/process.c
index 8ca19122e74..c2131a2d7e2 100644
--- a/server/process.c
+++ b/server/process.c
@@ -1874,6 +1874,7 @@ DECL_HANDLER(list_processes)
         process_info->priority = process->priority;
         process_info->pid = process->id;
         process_info->parent_pid = process->parent_id;
+        process_info->session_id = process->session_id;
         process_info->handle_count = get_handle_table_count(process);
         process_info->unix_pid = process->unix_pid;
         pos += sizeof(*process_info);
diff --git a/server/protocol.def b/server/protocol.def
index 952f5b193b2..8eb7e3e99ca 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -1609,9 +1609,9 @@ struct process_info
     int             priority;
     process_id_t    pid;
     process_id_t    parent_pid;
+    unsigned int    session_id;
     int             handle_count;
     int             unix_pid;
-    int             __pad;
     /* VARARG(name,unicode_str,name_len); */
     /* VARARG(threads,struct thread_info,thread_count); */
 };
diff --git a/server/trace.c b/server/trace.c
index dee0a893e77..f27cc47170b 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -1220,9 +1220,9 @@ static void dump_varargs_process_info( const char *prefix, data_size_t size )
         if (size - pos < sizeof(*process)) break;
         if (pos) fputc( ',', stderr );
         dump_timeout( "{start_time=", &process->start_time );
-        fprintf( stderr, ",thread_count=%u,priority=%d,pid=%04x,parent_pid=%04x,handle_count=%u,unix_pid=%d,",
+        fprintf( stderr, ",thread_count=%u,priority=%d,pid=%04x,parent_pid=%04x,session_id=%08x,handle_count=%u,unix_pid=%d,",
                  process->thread_count, process->priority, process->pid,
-                 process->parent_pid, process->handle_count, process->unix_pid );
+                 process->parent_pid, process->session_id, process->handle_count, process->unix_pid );
         pos += sizeof(*process);
 
         pos = dump_inline_unicode_string( "name=L\"", pos, process->name_len, size );




More information about the wine-cvs mailing list