From: Alexandre Julliard Subject: Re: [PATCH v2 1/3] ntdll: Reimplement NtQuerySystemInformation(SystemProcessInformation) using a single server call. Message-Id: <874kqo6hy3.fsf@wine> Date: Fri, 03 Jul 2020 11:55:48 +0200 In-Reply-To: <20200702220502.1257937-1-zfigura@codeweavers.com> (Zebediah Figura's message of "Thu, 2 Jul 2020 17:05:00 -0500") References: <20200702220502.1257937-1-zfigura@codeweavers.com> Zebediah Figura writes: > + LIST_FOR_EACH_ENTRY( process, &process_list, struct process, entry ) > + { > + struct process_info *process_info; > + struct process_dll *exe = get_process_exe_module( process ); > + > + pos = align_offset( pos, TYPE_ALIGNMENT(struct process_info) ); > + process_info = (struct process_info *)(buffer + pos); > + process_info->name_len = exe->namelen; > + process_info->thread_count = process->running_threads; > + process_info->priority = process->priority; > + process_info->pid = process->id; > + process_info->parent_pid = process->parent_id; > + process_info->handle_count = get_handle_table_count(process); > + process_info->unix_pid = process->unix_pid; > + pos += sizeof(*process_info); > + > + memcpy( buffer + pos, exe->filename, exe->namelen ); > + pos += exe->namelen; > + > + pos = align_offset( pos, TYPE_ALIGNMENT(struct thread_info) ); You also need to fill the alignment with zeros to avoid sending uninitialized data. -- Alexandre Julliard julliard@winehq.org