[PATCH v2 1/3] ntdll: Reimplement NtQuerySystemInformation(SystemProcessInformation) using a single server call.

Alexandre Julliard julliard at winehq.org
Fri Jul 3 04:55:48 CDT 2020


Zebediah Figura <z.figura12 at 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 at winehq.org



More information about the wine-devel mailing list