Segin wrote:
Robert Shearman wrote:
Segin wrote:
Could someone clue me in to just what this means and why it is: err:virtual:NtProtectVirtualMemory Unsupported on other process
A quick Google comes up that function is undocumented, so I don't have much info on it.
From the wine source:
if (!is_current_process( process )) { ERR("Unsupported on other process\n"); return STATUS_ACCESS_DENIED; }
And that's self explanitory, but why is it "Unsupported on other process"?
The POSIX & Linux equivalent doesn't take a process ID as an argument, hence it only operates on the current process.
Hmm... Intresting. I am going to assume, from what I have seen, that emulated Win32 processes have a represenative POSIX process. Is it possible to implement a lookup table of sorts to make it work cross-process?
There is already a lookup in the server, but there is no cross-process syscall for NtProtectVirtualMemory (and in fact for all of the other virtual memory functions). The cleanest fix is to get the kernel to support this. One suggested way of fixing this and other cross-process problems in Wine without kernel support is to change the context of the target process to set up a call to the relevant function and restore the registers afterwards. AFAIK, no one has tried to implement this yet.