[PATCH 1/2] kernel32: threadpool definitions and prototypes
Marcus Meissner
marcus at jet.franken.de
Mon Jan 27 02:16:50 CST 2014
merged from freerdp's winpr/pool/, adjusted to
match SDK expectations reported by Dmitry and Nikolay
---
include/winbase.h | 5 +++++
include/winnt.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 72 insertions(+)
diff --git a/include/winbase.h b/include/winbase.h
index 607fa4e..0c7d40b 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -1572,6 +1572,8 @@ WINADVAPI BOOL WINAPI ClearEventLogW(HANDLE,LPCWSTR);
#define ClearEventLog WINELIB_NAME_AW(ClearEventLog)
WINADVAPI BOOL WINAPI CloseEventLog(HANDLE);
WINBASEAPI BOOL WINAPI CloseHandle(HANDLE);
+WINBASEAPI VOID WINAPI CloseThreadpool(PTP_POOL);
+WINBASEAPI VOID WINAPI CloseThreadpoolWork(PTP_WORK);
WINBASEAPI BOOL WINAPI CommConfigDialogA(LPCSTR,HWND,LPCOMMCONFIG);
WINBASEAPI BOOL WINAPI CommConfigDialogW(LPCWSTR,HWND,LPCOMMCONFIG);
#define CommConfigDialog WINELIB_NAME_AW(CommConfigDialog)
@@ -1633,6 +1635,8 @@ WINBASEAPI HANDLE WINAPI CreateNamedPipeW(LPCWSTR,DWORD,DWORD,DWORD,DWORD,D
#define CreateNamedPipe WINELIB_NAME_AW(CreateNamedPipe)
WINBASEAPI BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD);
WINADVAPI BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING);
+WINBASEAPI PTP_POOL WINAPI CreateThreadpool(PVOID);
+WINBASEAPI PTP_WORK WINAPI CreateThreadpoolWork(PTP_WORK_CALLBACK,PVOID,PTP_CALLBACK_ENVIRON);
WINBASEAPI BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION);
WINBASEAPI BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
#define CreateProcess WINELIB_NAME_AW(CreateProcess)
@@ -2364,6 +2368,7 @@ WINBASEAPI DWORD WINAPI SizeofResource(HMODULE,HRSRC);
WINBASEAPI VOID WINAPI Sleep(DWORD);
WINBASEAPI BOOL WINAPI SleepConditionVariableCS(PCONDITION_VARIABLE,PCRITICAL_SECTION,DWORD);
WINBASEAPI DWORD WINAPI SleepEx(DWORD,BOOL);
+WINBASEAPI VOID WINAPI SubmitThreadpoolWork(PTP_WORK);
WINBASEAPI DWORD WINAPI SuspendThread(HANDLE);
WINBASEAPI void WINAPI SwitchToFiber(LPVOID);
WINBASEAPI BOOL WINAPI SwitchToThread(void);
diff --git a/include/winnt.h b/include/winnt.h
index f55f2fe..f5f4b3d 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -5699,6 +5699,73 @@ typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
} DUMMYUNIONNAME;
} SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
+/* Threadpool things */
+typedef DWORD TP_VERSION,*PTP_VERSION;
+
+typedef struct _TP_CALLBACK_INSTANCE TP_CALLBACK_INSTANCE,*PTP_CALLBACK_INSTANCE;
+
+typedef VOID (CALLBACK *PTP_SIMPLE_CALLBACK)(PTP_CALLBACK_INSTANCE Instance, PVOID Context);
+
+typedef struct _TP_POOL TP_POOL,*PTP_POOL;
+
+typedef enum _TP_CALLBACK_PRIORITY
+{
+ TP_CALLBACK_PRIORITY_HIGH,
+ TP_CALLBACK_PRIORITY_NORMAL,
+ TP_CALLBACK_PRIORITY_LOW,
+ TP_CALLBACK_PRIORITY_INVALID,
+ TP_CALLBACK_PRIORITY_COUNT = TP_CALLBACK_PRIORITY_INVALID
+} TP_CALLBACK_PRIORITY;
+
+typedef struct _TP_POOL_STACK_INFORMATION
+{
+ SIZE_T StackReserve;
+ SIZE_T StackCommit;
+} TP_POOL_STACK_INFORMATION,*PTP_POOL_STACK_INFORMATION;
+
+typedef struct _TP_CLEANUP_GROUP TP_CLEANUP_GROUP,*PTP_CLEANUP_GROUP;
+
+typedef VOID (CALLBACK *PTP_CLEANUP_GROUP_CANCEL_CALLBACK)(PVOID ObjectContext, PVOID CleanupContext);
+
+typedef struct _TP_CALLBACK_ENVIRON_V1
+{
+ TP_VERSION Version;
+ PTP_POOL Pool;
+ PTP_CLEANUP_GROUP CleanupGroup;
+ PTP_CLEANUP_GROUP_CANCEL_CALLBACK CleanupGroupCancelCallback;
+ PVOID RaceDll;
+ struct _ACTIVATION_CONTEXT* ActivationContext;
+ PTP_SIMPLE_CALLBACK FinalizationCallback;
+ union
+ {
+ DWORD Flags;
+ struct
+ {
+ DWORD LongFunction:1;
+ DWORD Persistent:1;
+ DWORD Private:30;
+ } s;
+ } u;
+} TP_CALLBACK_ENVIRON_V1;
+
+typedef struct _TP_WORK TP_WORK, *PTP_WORK;
+typedef struct _TP_TIMER TP_TIMER, *PTP_TIMER;
+
+typedef DWORD TP_WAIT_RESULT;
+typedef struct _TP_WAIT TP_WAIT, *PTP_WAIT;
+
+typedef struct _TP_IO TP_IO, *PTP_IO;
+
+typedef TP_CALLBACK_ENVIRON_V1 TP_CALLBACK_ENVIRON, *PTP_CALLBACK_ENVIRON;
+
+typedef VOID (CALLBACK *PTP_WORK_CALLBACK)(PTP_CALLBACK_INSTANCE Instance, PVOID Context, PTP_WORK Work);
+typedef VOID (CALLBACK *PTP_TIMER_CALLBACK)(PTP_CALLBACK_INSTANCE Instance, PVOID Context, PTP_TIMER Timer);
+typedef VOID (CALLBACK *PTP_WAIT_CALLBACK)(PTP_CALLBACK_INSTANCE Instance,
+ PVOID Context, PTP_WAIT Wait, TP_WAIT_RESULT WaitResult);
+typedef VOID (CALLBACK *PTP_WIN32_IO_CALLBACK)(PTP_CALLBACK_INSTANCE Instance, PVOID Context, PVOID Overlapped,
+ ULONG IoResult, ULONG_PTR NumberOfBytesTransferred, PTP_IO Io);
+
+
NTSYSAPI BOOLEAN NTAPI RtlGetProductInfo(DWORD,DWORD,DWORD,DWORD,PDWORD);
#ifdef __cplusplus
--
1.8.4.5
More information about the wine-patches
mailing list