Hello > There is no need to export __wine_is_current_process from ntdll and use > it here when standard win32 apis will suffice.
> Well, not quite. You can open another handle to the process using > DuplicateHandle or something else, so you need to go via the server. The > simplest way to do this using Win32 is: > if (GetProcessId(handle) == GetCurrentProcessId()) You miss. It seems we really need __wine_is_current_process. > >+ if( ! WriteProcessMemory( hProcess, &info, &local_info, > > > This looks wrong. &info? Don't you mean just info? Yes! Thanks. > >+ if ((process = get_process_from_handle( req->handle, > >+ PROCESS_CREATE_THREAD > >+ | PROCESS_QUERY_INFORMATION > >+ | PROCESS_VM_OPERATION > >+ | PROCESS_VM_READ | PROCESS_VM_WRITE > >))) > > > > > I would argue that it is perfectly alright for the access rights to be > just PROCESS_QUERY_INFORMATION here. Maybe. But with the full set of access rights CreateRemoteThread will return earlier in case of error. > Is it really necessary to perform the action required for remote > invocation of some operation asynchronously? It seems to add a lot of > unneeded complexity. What shall we do with csVirtual critical section in ntdll/virtual.c?
