kernel32: Add CreateRemoteThreadEx().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
cb05be7bff
commit
32617e814a
|
@ -2,7 +2,7 @@
|
|||
@ stdcall CreateProcessAsUserW(long wstr wstr ptr ptr long long ptr wstr ptr ptr) advapi32.CreateProcessAsUserW
|
||||
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
|
||||
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
|
||||
@ stub CreateRemoteThreadEx
|
||||
@ stdcall CreateRemoteThreadEx(long ptr long ptr ptr long ptr ptr) kernel32.CreateRemoteThreadEx
|
||||
@ stdcall CreateThread(ptr long ptr long long ptr) kernel32.CreateThread
|
||||
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
|
||||
@ stdcall ExitProcess(long) kernel32.ExitProcess
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@ stdcall CreateProcessAsUserW(long wstr wstr ptr ptr long long ptr wstr ptr ptr) advapi32.CreateProcessAsUserW
|
||||
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
|
||||
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
|
||||
@ stub CreateRemoteThreadEx
|
||||
@ stdcall CreateRemoteThreadEx(long ptr long ptr ptr long ptr ptr) kernel32.CreateRemoteThreadEx
|
||||
@ stdcall CreateThread(ptr long ptr long long ptr) kernel32.CreateThread
|
||||
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
|
||||
@ stdcall ExitProcess(long) kernel32.ExitProcess
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@ stdcall CreateProcessAsUserW(long wstr wstr ptr ptr long long ptr wstr ptr ptr) advapi32.CreateProcessAsUserW
|
||||
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
|
||||
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
|
||||
@ stub CreateRemoteThreadEx
|
||||
@ stdcall CreateRemoteThreadEx(long ptr long ptr ptr long ptr ptr) kernel32.CreateRemoteThreadEx
|
||||
@ stdcall CreateThread(ptr long ptr long long ptr) kernel32.CreateThread
|
||||
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
|
||||
@ stdcall ExitProcess(long) kernel32.ExitProcess
|
||||
|
|
|
@ -319,7 +319,7 @@
|
|||
# @ stub CreateProcessInternalWSecure
|
||||
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr)
|
||||
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr)
|
||||
# @ stub CreateRemoteThreadEx
|
||||
@ stdcall CreateRemoteThreadEx(long ptr long ptr ptr long ptr ptr)
|
||||
@ stdcall CreateSemaphoreA(ptr long long str)
|
||||
@ stdcall CreateSemaphoreExA(ptr long long str long long)
|
||||
@ stdcall CreateSemaphoreExW(ptr long long wstr long long)
|
||||
|
|
|
@ -55,9 +55,18 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread( SECURITY_ATTRIBUTES *sa, SIZE_T st
|
|||
sa, stack, start, param, flags, id );
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
* CreateRemoteThread (KERNEL32.@)
|
||||
*/
|
||||
HANDLE WINAPI CreateRemoteThread( HANDLE hProcess, SECURITY_ATTRIBUTES *sa, SIZE_T stack,
|
||||
LPTHREAD_START_ROUTINE start, LPVOID param,
|
||||
DWORD flags, DWORD *id )
|
||||
{
|
||||
return CreateRemoteThreadEx( hProcess, sa, stack, start, param, flags, NULL, id );
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
* CreateRemoteThreadEx (KERNEL32.@)
|
||||
*
|
||||
* Creates a thread that runs in the address space of another process
|
||||
*
|
||||
|
@ -73,15 +82,18 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread( SECURITY_ATTRIBUTES *sa, SIZE_T st
|
|||
* Bad start address for RtlCreateUserThread because the library
|
||||
* may be loaded at different address in other process.
|
||||
*/
|
||||
HANDLE WINAPI CreateRemoteThread( HANDLE hProcess, SECURITY_ATTRIBUTES *sa, SIZE_T stack,
|
||||
LPTHREAD_START_ROUTINE start, LPVOID param,
|
||||
DWORD flags, LPDWORD id )
|
||||
HANDLE WINAPI CreateRemoteThreadEx( HANDLE hProcess, SECURITY_ATTRIBUTES *sa, SIZE_T stack,
|
||||
LPTHREAD_START_ROUTINE start, LPVOID param, DWORD flags,
|
||||
LPPROC_THREAD_ATTRIBUTE_LIST attributes, DWORD *id )
|
||||
{
|
||||
HANDLE handle;
|
||||
CLIENT_ID client_id;
|
||||
NTSTATUS status;
|
||||
SIZE_T stack_reserve = 0, stack_commit = 0;
|
||||
|
||||
if (attributes)
|
||||
FIXME("thread attributes ignored\n");
|
||||
|
||||
if (flags & STACK_SIZE_PARAM_IS_A_RESERVATION) stack_reserve = stack;
|
||||
else stack_commit = stack;
|
||||
|
||||
|
|
|
@ -212,7 +212,7 @@
|
|||
# @ stub CreateProcessInternalW
|
||||
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
|
||||
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
|
||||
@ stub CreateRemoteThreadEx
|
||||
@ stdcall CreateRemoteThreadEx(long ptr long ptr ptr long ptr ptr) kernel32.CreateRemoteThreadEx
|
||||
@ stdcall CreateRestrictedToken(long long long ptr long ptr long ptr ptr) advapi32.CreateRestrictedToken
|
||||
@ stdcall CreateSemaphoreExW(ptr long long wstr long long) kernel32.CreateSemaphoreExW
|
||||
@ stdcall CreateSemaphoreW(ptr long long wstr) kernel32.CreateSemaphoreW
|
||||
|
|
|
@ -1844,6 +1844,7 @@ WINADVAPI BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECUR
|
|||
#define CreateProcessAsUser WINELIB_NAME_AW(CreateProcessAsUser)
|
||||
WINADVAPI BOOL WINAPI CreateProcessWithLogonW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPWSTR,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
|
||||
WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
|
||||
WINBASEAPI HANDLE WINAPI CreateRemoteThreadEx(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPPROC_THREAD_ATTRIBUTE_LIST,LPDWORD);
|
||||
WINADVAPI BOOL WINAPI CreateRestrictedToken(HANDLE,DWORD,DWORD,PSID_AND_ATTRIBUTES,DWORD,PLUID_AND_ATTRIBUTES,DWORD,PSID_AND_ATTRIBUTES,PHANDLE);
|
||||
WINBASEAPI HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
|
||||
WINBASEAPI HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
|
||||
|
|
Loading…
Reference in New Issue