Sebastian Lackner : kernel32: Forward threadpool cleanup group functions to ntdll.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jul 3 09:02:35 CDT 2015


Module: wine
Branch: master
Commit: a54d972868f03ed38bb98c3a0d9888a777e9b7ec
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a54d972868f03ed38bb98c3a0d9888a777e9b7ec

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Fri Jul  3 01:59:22 2015 +0200

kernel32: Forward threadpool cleanup group functions to ntdll.

---

 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,




More information about the wine-cvs mailing list