From: Sebastian Lackner Subject: [7/12] kernel32: Forward threadpool cleanup group functions to ntdll. Message-Id: <5595D05A.5080702@fds-team.de> Date: Fri, 3 Jul 2015 01:59:22 +0200 --- dlls/kernel32/kernel32.spec | 6 +++--- dlls/kernel32/thread.c | 20 ++++++++++++++++++++ include/winternl.h | 6 ++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 3c40975..b48ea3b 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -229,8 +229,8 @@ @ stdcall CloseProfileUserMapping() @ stub CloseSystemHandle # @ stub CloseThreadpool -# @ stub CloseThreadpoolCleanupGroup -# @ stub CloseThreadpoolCleanupGroupMembers +@ stdcall CloseThreadpoolCleanupGroup(ptr) ntdll.TpReleaseCleanupGroup +@ stdcall CloseThreadpoolCleanupGroupMembers(ptr long ptr) ntdll.TpReleaseCleanupGroupMembers # @ stub CloseThreadpoolIo # @ stub CloseThreadpoolTimer # @ stub CloseThreadpoolWait @@ -332,7 +332,7 @@ @ stdcall CreateTapePartition(long long long long) @ stdcall CreateThread(ptr long ptr long long ptr) # @ stub CreateThreadpool -# @ stub CreateThreadpoolCleanupGroup +@ stdcall CreateThreadpoolCleanupGroup() # @ stub CreateThreadpoolIo # @ stub CreateThreadpoolTimer # @ stub CreateThreadpoolWait diff --git a/dlls/kernel32/thread.c b/dlls/kernel32/thread.c index 3dabf94..b2b9def 100644 --- a/dlls/kernel32/thread.c +++ b/dlls/kernel32/thread.c @@ -860,3 +860,23 @@ BOOL WINAPI GetThreadPreferredUILanguages( DWORD flags, PULONG count, PCZZWSTR b *buffersize = 0; return TRUE; } + +/*********************************************************************** + * CreateThreadpoolCleanupGroup (KERNEL32.@) + */ +PTP_CLEANUP_GROUP WINAPI CreateThreadpoolCleanupGroup( void ) +{ + TP_CLEANUP_GROUP *group; + NTSTATUS status; + + TRACE( "\n" ); + + status = TpAllocCleanupGroup( &group ); + if (status) + { + SetLastError( RtlNtStatusToDosError(status) ); + return NULL; + } + + return group; +} diff --git a/include/winternl.h b/include/winternl.h index a84c6d4..c918e09 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -2616,6 +2616,12 @@ NTSYSAPI LONGLONG WINAPI RtlLargeIntegerSubtract(LONGLONG,LONGLONG); NTSYSAPI NTSTATUS WINAPI RtlLargeIntegerToChar(const ULONGLONG *,ULONG,ULONG,PCHAR); #endif +/* Threadpool functions */ + +NTSYSAPI NTSTATUS WINAPI TpAllocCleanupGroup(TP_CLEANUP_GROUP **); +NTSYSAPI void WINAPI TpReleaseCleanupGroup(TP_CLEANUP_GROUP *); +NTSYSAPI void WINAPI TpReleaseCleanupGroupMembers(TP_CLEANUP_GROUP *,BOOL,PVOID); + /* Wine internal functions */ NTSYSAPI NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret, -- 2.4.4