From: Brendan Shanks bshanks@codeweavers.com
--- dlls/ntdll/unix/thread.c | 46 +++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 17 deletions(-)
diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c index 189c174f58f..d6a6f505d59 100644 --- a/dlls/ntdll/unix/thread.c +++ b/dlls/ntdll/unix/thread.c @@ -1334,24 +1334,12 @@ static NTSTATUS create_pthread( struct ntdll_thread_data *thread_data, TEB *teb
/*********************************************************************** - * NtCreateThread (NTDLL.@) - */ -NTSTATUS WINAPI NtCreateThread( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr, - HANDLE process, CLIENT_ID *id, CONTEXT *ctx, INITIAL_TEB *teb, - BOOLEAN suspended ) -{ - FIXME( "%p %d %p %p %p %p %p %d, stub!\n", - handle, access, attr, process, id, ctx, teb, suspended ); - return STATUS_NOT_IMPLEMENTED; -} - -/*********************************************************************** - * NtCreateThreadEx (NTDLL.@) + * create_thread */ -NTSTATUS WINAPI NtCreateThreadEx( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr, - HANDLE process, PRTL_THREAD_START_ROUTINE start, void *param, - ULONG flags, ULONG_PTR zero_bits, SIZE_T stack_commit, - SIZE_T stack_reserve, PS_ATTRIBUTE_LIST *attr_list ) +static NTSTATUS create_thread( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr, + HANDLE process, PRTL_THREAD_START_ROUTINE start, void *param, + ULONG flags, ULONG_PTR zero_bits, SIZE_T stack_commit, + SIZE_T stack_reserve, PS_ATTRIBUTE_LIST *attr_list ) { static const ULONG supported_flags = THREAD_CREATE_FLAGS_CREATE_SUSPENDED | THREAD_CREATE_FLAGS_SKIP_THREAD_ATTACH | THREAD_CREATE_FLAGS_HIDE_FROM_DEBUGGER | THREAD_CREATE_FLAGS_SKIP_LOADER_INIT | @@ -1482,6 +1470,30 @@ done: return status; }
+/*********************************************************************** + * NtCreateThread (NTDLL.@) + */ +NTSTATUS WINAPI NtCreateThread( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr, + HANDLE process, CLIENT_ID *id, CONTEXT *ctx, INITIAL_TEB *teb, + BOOLEAN suspended ) +{ + FIXME( "%p %d %p %p %p %p %p %d, stub!\n", + handle, access, attr, process, id, ctx, teb, suspended ); + return STATUS_NOT_IMPLEMENTED; +} + +/*********************************************************************** + * NtCreateThreadEx (NTDLL.@) + */ +NTSTATUS WINAPI NtCreateThreadEx( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr, + HANDLE process, PRTL_THREAD_START_ROUTINE start, void *param, + ULONG flags, ULONG_PTR zero_bits, SIZE_T stack_commit, + SIZE_T stack_reserve, PS_ATTRIBUTE_LIST *attr_list ) +{ + return create_thread( handle, access, attr, process, start, param, flags, + zero_bits, stack_commit, stack_reserve, attr_list ); +} +
/*********************************************************************** * abort_thread