Zebediah Figura <z.figura12(a)gmail.com> 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(a)winehq.org