2 * Copyright 2019 Hans Leidekker for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef _THREADPOOLAPISET_H_
20 #define _THREADPOOLAPISET_H_
26 typedef void (CALLBACK
*PTP_WIN32_IO_CALLBACK
)(PTP_CALLBACK_INSTANCE
,PVOID
,PVOID
,ULONG
,ULONG_PTR
,PTP_IO
);
28 WINBASEAPI
void WINAPI
CancelThreadpoolIo(TP_IO
*);
29 WINBASEAPI
void WINAPI
CloseThreadpool(PTP_POOL
);
30 WINBASEAPI
void WINAPI
CloseThreadpoolCleanupGroup(PTP_CLEANUP_GROUP
);
31 WINBASEAPI
void WINAPI
CloseThreadpoolCleanupGroupMembers(PTP_CLEANUP_GROUP
,BOOL
,PVOID
);
32 WINBASEAPI
void WINAPI
CloseThreadpoolIo(TP_IO
*);
33 WINBASEAPI
void WINAPI
CloseThreadpoolTimer(PTP_TIMER
);
34 WINBASEAPI
void WINAPI
CloseThreadpoolWait(PTP_WAIT
);
35 WINBASEAPI
void WINAPI
CloseThreadpoolWork(PTP_WORK
);
36 WINBASEAPI TP_POOL
* WINAPI
CreateThreadpool(void*) __WINE_DEALLOC(CloseThreadpool
);
37 WINBASEAPI TP_CLEANUP_GROUP
* WINAPI
CreateThreadpoolCleanupGroup(void)
38 __WINE_DEALLOC(CloseThreadpoolCleanupGroup
);
39 WINBASEAPI TP_IO
* WINAPI
CreateThreadpoolIo(HANDLE
,PTP_WIN32_IO_CALLBACK
,void*,TP_CALLBACK_ENVIRON
*)
40 __WINE_DEALLOC(CloseThreadpoolIo
);
41 WINBASEAPI TP_TIMER
* WINAPI
CreateThreadpoolTimer(PTP_TIMER_CALLBACK
,void*,TP_CALLBACK_ENVIRON
*)
42 __WINE_DEALLOC(CloseThreadpoolTimer
);
43 WINBASEAPI TP_WAIT
* WINAPI
CreateThreadpoolWait(PTP_WAIT_CALLBACK
,void*,TP_CALLBACK_ENVIRON
*)
44 __WINE_DEALLOC(CloseThreadpoolWait
);
45 WINBASEAPI TP_WORK
* WINAPI
CreateThreadpoolWork(PTP_WORK_CALLBACK
,void*,TP_CALLBACK_ENVIRON
*)
46 __WINE_DEALLOC(CloseThreadpoolWork
);
47 WINBASEAPI
void WINAPI
DisassociateCurrentThreadFromCallback(PTP_CALLBACK_INSTANCE
);
48 WINBASEAPI
void WINAPI
FreeLibraryWhenCallbackReturns(PTP_CALLBACK_INSTANCE
,HMODULE
);
49 WINBASEAPI BOOL WINAPI
IsThreadpoolTimerSet(PTP_TIMER
);
50 WINBASEAPI
void WINAPI
LeaveCriticalSectionWhenCallbackReturns(PTP_CALLBACK_INSTANCE
,RTL_CRITICAL_SECTION
*);
51 WINBASEAPI BOOL WINAPI
QueryThreadpoolStackInformation(PTP_POOL
,PTP_POOL_STACK_INFORMATION
);
52 WINBASEAPI
void WINAPI
ReleaseMutexWhenCallbackReturns(PTP_CALLBACK_INSTANCE
,HANDLE
);
53 WINBASEAPI
void WINAPI
ReleaseSemaphoreWhenCallbackReturns(PTP_CALLBACK_INSTANCE
,HANDLE
,DWORD
);
54 WINBASEAPI
void WINAPI
SetEventWhenCallbackReturns(PTP_CALLBACK_INSTANCE
,HANDLE
);
55 WINBASEAPI BOOL WINAPI
SetThreadpoolStackInformation(PTP_POOL
,PTP_POOL_STACK_INFORMATION
);
56 WINBASEAPI
void WINAPI
SetThreadpoolThreadMaximum(PTP_POOL
,DWORD
);
57 WINBASEAPI BOOL WINAPI
SetThreadpoolThreadMinimum(PTP_POOL
,DWORD
);
58 WINBASEAPI
void WINAPI
SetThreadpoolTimer(PTP_TIMER
,FILETIME
*,DWORD
,DWORD
);
59 WINBASEAPI
void WINAPI
SetThreadpoolWait(PTP_WAIT
,HANDLE
,FILETIME
*);
60 WINBASEAPI
void WINAPI
StartThreadpoolIo(TP_IO
*);
61 WINBASEAPI
void WINAPI
SubmitThreadpoolWork(PTP_WORK
);
62 WINBASEAPI BOOL WINAPI
TrySubmitThreadpoolCallback(PTP_SIMPLE_CALLBACK
,void*,TP_CALLBACK_ENVIRON
*);
63 WINBASEAPI
void WINAPI
WaitForThreadpoolIoCallbacks(TP_IO
*,BOOL
);
64 WINBASEAPI
void WINAPI
WaitForThreadpoolTimerCallbacks(PTP_TIMER
,BOOL
);
65 WINBASEAPI
void WINAPI
WaitForThreadpoolWaitCallbacks(PTP_WAIT
,BOOL
);
66 WINBASEAPI
void WINAPI
WaitForThreadpoolWorkCallbacks(PTP_WORK
,BOOL
);
72 #endif /* _THREADPOOLAPISET_H_ */