Commit 4fda0463 authored by Andrew Wesie's avatar Andrew Wesie Committed by Alexandre Julliard

ntdll: Implement NtCreateThreadEx.

parent 4bc1e172
...@@ -152,6 +152,7 @@ ...@@ -152,6 +152,7 @@
@ stdcall NtCreateSemaphore(ptr long ptr long long) @ stdcall NtCreateSemaphore(ptr long ptr long long)
@ stdcall NtCreateSymbolicLinkObject(ptr long ptr ptr) @ stdcall NtCreateSymbolicLinkObject(ptr long ptr ptr)
@ stub NtCreateThread @ stub NtCreateThread
@ stdcall NtCreateThreadEx(ptr long ptr long ptr ptr long long long long ptr)
@ stdcall NtCreateTimer(ptr long ptr long) @ stdcall NtCreateTimer(ptr long ptr long)
@ stub NtCreateToken @ stub NtCreateToken
# @ stub NtCreateWaitablePort # @ stub NtCreateWaitablePort
......
...@@ -525,6 +525,23 @@ static void start_thread( struct startup_info *info ) ...@@ -525,6 +525,23 @@ static void start_thread( struct startup_info *info )
/*********************************************************************** /***********************************************************************
* NtCreateThreadEx (NTDLL.@)
*/
NTSTATUS WINAPI NtCreateThreadEx( HANDLE *handle_ptr, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr,
HANDLE process, LPTHREAD_START_ROUTINE start, void *param,
ULONG flags, ULONG zero_bits, ULONG stack_commit,
ULONG stack_reserve, void *attribute_list )
{
FIXME( "%p, %x, %p, %p, %p, %p, %x, %x, %x, %x, %p semi-stub!\n", handle_ptr, access, attr,
process, start, param, flags, zero_bits, stack_commit, stack_reserve, attribute_list );
return RtlCreateUserThread( process, NULL, flags & THREAD_CREATE_FLAGS_CREATE_SUSPENDED,
NULL, stack_reserve, stack_commit, (PRTL_THREAD_START_ROUTINE)start,
param, handle_ptr, NULL );
}
/***********************************************************************
* RtlCreateUserThread (NTDLL.@) * RtlCreateUserThread (NTDLL.@)
*/ */
NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *descr, NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *descr,
......
...@@ -2200,6 +2200,13 @@ typedef struct _SYSTEM_MODULE_INFORMATION ...@@ -2200,6 +2200,13 @@ typedef struct _SYSTEM_MODULE_INFORMATION
SYSTEM_MODULE Modules[1]; /* FIXME: should be Modules[0] */ SYSTEM_MODULE Modules[1]; /* FIXME: should be Modules[0] */
} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION; } SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
#define THREAD_CREATE_FLAGS_CREATE_SUSPENDED 0x00000001
#define THREAD_CREATE_FLAGS_SKIP_THREAD_ATTACH 0x00000002
#define THREAD_CREATE_FLAGS_HIDE_FROM_DEBUGGER 0x00000004
#define THREAD_CREATE_FLAGS_HAS_SECURITY_DESCRIPTOR 0x00000010
#define THREAD_CREATE_FLAGS_ACCESS_CHECK_IN_TARGET 0x00000020
#define THREAD_CREATE_FLAGS_INITIAL_THREAD 0x00000080
/*********************************************************************** /***********************************************************************
* Function declarations * Function declarations
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment