Module: wine Branch: master Commit: b20cbd0d571302e33ab602fa6670a131ae4353ce URL: https://source.winehq.org/git/wine.git/?a=commit;h=b20cbd0d571302e33ab602fa6...
Author: Alexandre Julliard julliard@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@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 );