RemoteProcessOperations

RemoteProcessOperations

Most remote process operations were not implemented in Wine until early 2007. This includes CreateRemoteThread/RtlCreateUserThread and the Virtual*Ex/Nt*VirtualMemory (e.g. VirtualAllocEx/NtAllocateVirtualMemory and VirtualQueryEx/NtQueryVirtualMemory) functions.

A patch implementing these was posted by Thomas Kho on 18 August 2006; see http://winehq.org/pipermail/wine-patches/2006-August/date.html#29894 Alexandre later rewrote this himself and merged it as of wine-0.9.30 or so.

Users

Who uses these APIs?

TODO

  • Windows maps kernel32 and ntdll to the same location in each process; this makes it possible to call library functions with CreateRemoteThread. Unfortunately, this is only sometimes the case for Wine. Please see this wine-devel thread for a discussion.

Relevant wine-devel Threads

  1. ntdll: CreateRemoteThread and friends for remote processes, take 3, via APCs (August 2006)

  2. ntdll: CreateRemoteThread and RtlCreateUserThread for remote processes, take 2 (August 2006)

  3. ntdll: enable CreateRemoteThread and RtlCreateUserThread for remote processes (July 2006)

  4. ntdll: a simple implementation of cross-process NtAllocateVirtualMemory (June 2006)

  5. Support remote operations in wineserver (September 2004)

  6. CreateRemoteThread and related stuff (patch) (August 2004)

  7. Unhandled API Call to Kernel32 Question (May 2004)

RemoteProcessOperations (last edited 2008-05-03 03:44:07 by nathan.n)