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 PTP_POOL WINAPI
CreateThreadpool(PVOID
);
37 WINBASEAPI PTP_CLEANUP_GROUP WINAPI
CreateThreadpoolCleanupGroup(void);
38 WINBASEAPI PTP_IO WINAPI
CreateThreadpoolIo(HANDLE
,PTP_WIN32_IO_CALLBACK
,PVOID
,PTP_CALLBACK_ENVIRON
);
39 WINBASEAPI PTP_TIMER WINAPI
CreateThreadpoolTimer(PTP_TIMER_CALLBACK
,PVOID
,PTP_CALLBACK_ENVIRON
);
40 WINBASEAPI PTP_WAIT WINAPI
CreateThreadpoolWait(PTP_WAIT_CALLBACK
,PVOID
,PTP_CALLBACK_ENVIRON
);
41 WINBASEAPI PTP_WORK WINAPI
CreateThreadpoolWork(PTP_WORK_CALLBACK
,PVOID
,PTP_CALLBACK_ENVIRON
);
42 WINBASEAPI
void WINAPI
DisassociateCurrentThreadFromCallback(PTP_CALLBACK_INSTANCE
);
43 WINBASEAPI
void WINAPI
FreeLibraryWhenCallbackReturns(PTP_CALLBACK_INSTANCE
,HMODULE
);
44 WINBASEAPI BOOL WINAPI
IsThreadpoolTimerSet(PTP_TIMER
);
45 WINBASEAPI
void WINAPI
LeaveCriticalSectionWhenCallbackReturns(PTP_CALLBACK_INSTANCE
,RTL_CRITICAL_SECTION
*);
46 WINBASEAPI BOOL WINAPI
QueryThreadpoolStackInformation(PTP_POOL
,PTP_POOL_STACK_INFORMATION
);
47 WINBASEAPI
void WINAPI
ReleaseMutexWhenCallbackReturns(PTP_CALLBACK_INSTANCE
,HANDLE
);
48 WINBASEAPI
void WINAPI
ReleaseSemaphoreWhenCallbackReturns(PTP_CALLBACK_INSTANCE
,HANDLE
,DWORD
);
49 WINBASEAPI
void WINAPI
SetEventWhenCallbackReturns(PTP_CALLBACK_INSTANCE
,HANDLE
);
50 WINBASEAPI BOOL WINAPI
SetThreadpoolStackInformation(PTP_POOL
,PTP_POOL_STACK_INFORMATION
);
51 WINBASEAPI
void WINAPI
SetThreadpoolThreadMaximum(PTP_POOL
,DWORD
);
52 WINBASEAPI BOOL WINAPI
SetThreadpoolThreadMinimum(PTP_POOL
,DWORD
);
53 WINBASEAPI
void WINAPI
SetThreadpoolTimer(PTP_TIMER
,FILETIME
*,DWORD
,DWORD
);
54 WINBASEAPI
void WINAPI
SetThreadpoolWait(PTP_WAIT
,HANDLE
,FILETIME
*);
55 WINBASEAPI
void WINAPI
StartThreadpoolIo(TP_IO
*);
56 WINBASEAPI
void WINAPI
SubmitThreadpoolWork(PTP_WORK
);
57 WINBASEAPI BOOL WINAPI
TrySubmitThreadpoolCallback(PTP_SIMPLE_CALLBACK
,void*,TP_CALLBACK_ENVIRON
*);
58 WINBASEAPI
void WINAPI
WaitForThreadpoolIoCallbacks(TP_IO
*,BOOL
);
59 WINBASEAPI
void WINAPI
WaitForThreadpoolTimerCallbacks(PTP_TIMER
,BOOL
);
60 WINBASEAPI
void WINAPI
WaitForThreadpoolWaitCallbacks(PTP_WAIT
,BOOL
);
61 WINBASEAPI
void WINAPI
WaitForThreadpoolWorkCallbacks(PTP_WORK
,BOOL
);
67 #endif /* _THREADPOOLAPISET_H_ */