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 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 CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
|
||||||
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
|
@ 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 CreateThread(ptr long ptr long long ptr) kernel32.CreateThread
|
||||||
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
|
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
|
||||||
@ stdcall ExitProcess(long) kernel32.ExitProcess
|
@ 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 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 CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
|
||||||
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
|
@ 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 CreateThread(ptr long ptr long long ptr) kernel32.CreateThread
|
||||||
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
|
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
|
||||||
@ stdcall ExitProcess(long) kernel32.ExitProcess
|
@ 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 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 CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
|
||||||
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
|
@ 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 CreateThread(ptr long ptr long long ptr) kernel32.CreateThread
|
||||||
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
|
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
|
||||||
@ stdcall ExitProcess(long) kernel32.ExitProcess
|
@ stdcall ExitProcess(long) kernel32.ExitProcess
|
||||||
|
|
|
@ -319,7 +319,7 @@
|
||||||
# @ stub CreateProcessInternalWSecure
|
# @ stub CreateProcessInternalWSecure
|
||||||
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr)
|
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr)
|
||||||
@ stdcall CreateRemoteThread(long ptr long ptr long long 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 CreateSemaphoreA(ptr long long str)
|
||||||
@ stdcall CreateSemaphoreExA(ptr long long str long long)
|
@ stdcall CreateSemaphoreExA(ptr long long str long long)
|
||||||
@ stdcall CreateSemaphoreExW(ptr long long wstr 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 );
|
sa, stack, start, param, flags, id );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* CreateRemoteThread (KERNEL32.@)
|
* 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
|
* 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
|
* Bad start address for RtlCreateUserThread because the library
|
||||||
* may be loaded at different address in other process.
|
* may be loaded at different address in other process.
|
||||||
*/
|
*/
|
||||||
HANDLE WINAPI CreateRemoteThread( HANDLE hProcess, SECURITY_ATTRIBUTES *sa, SIZE_T stack,
|
HANDLE WINAPI CreateRemoteThreadEx( HANDLE hProcess, SECURITY_ATTRIBUTES *sa, SIZE_T stack,
|
||||||
LPTHREAD_START_ROUTINE start, LPVOID param,
|
LPTHREAD_START_ROUTINE start, LPVOID param, DWORD flags,
|
||||||
DWORD flags, LPDWORD id )
|
LPPROC_THREAD_ATTRIBUTE_LIST attributes, DWORD *id )
|
||||||
{
|
{
|
||||||
HANDLE handle;
|
HANDLE handle;
|
||||||
CLIENT_ID client_id;
|
CLIENT_ID client_id;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
SIZE_T stack_reserve = 0, stack_commit = 0;
|
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;
|
if (flags & STACK_SIZE_PARAM_IS_A_RESERVATION) stack_reserve = stack;
|
||||||
else stack_commit = stack;
|
else stack_commit = stack;
|
||||||
|
|
||||||
|
|
|
@ -212,7 +212,7 @@
|
||||||
# @ stub CreateProcessInternalW
|
# @ stub CreateProcessInternalW
|
||||||
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
|
@ 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
|
@ 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 CreateRestrictedToken(long long long ptr long ptr long ptr ptr) advapi32.CreateRestrictedToken
|
||||||
@ stdcall CreateSemaphoreExW(ptr long long wstr long long) kernel32.CreateSemaphoreExW
|
@ stdcall CreateSemaphoreExW(ptr long long wstr long long) kernel32.CreateSemaphoreExW
|
||||||
@ stdcall CreateSemaphoreW(ptr long long wstr) kernel32.CreateSemaphoreW
|
@ 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)
|
#define CreateProcessAsUser WINELIB_NAME_AW(CreateProcessAsUser)
|
||||||
WINADVAPI BOOL WINAPI CreateProcessWithLogonW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPWSTR,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
|
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 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);
|
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 CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
|
||||||
WINBASEAPI HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
|
WINBASEAPI HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
|
||||||
|
|
Loading…
Reference in New Issue