2 * PROJECT: ReactOS Tests
3 * LICENSE: GPL - See COPYING in the top level directory
5 * PURPOSE: Usermode QueueUserWorkItem() testing
6 * PROGRAMMERS: Thomas Weidenmueller (w3seek@reactos.org)
12 #define WT_EXECUTEINPERSISTENTIOTHREAD 0x00000040
13 BOOL WINAPI
QueueUserWorkItem(LPTHREAD_START_ROUTINE
,PVOID
,ULONG
);
16 DWORD CALLBACK TestProc##n(void *ctx)\
18 printf("TestProc%d thread 0x%x context 0x%p\n", n, GetCurrentThreadId(), ctx);\
30 main(int argc
, char* argv
[])
32 PVOID x
= (PVOID
)0x12345;
33 QueueUserWorkItem(TestProc1
, x
, 0);
34 QueueUserWorkItem(TestProc2
, x
, WT_EXECUTELONGFUNCTION
);
35 QueueUserWorkItem(TestProc3
, x
, WT_EXECUTEINIOTHREAD
);
36 QueueUserWorkItem(TestProc4
, x
, WT_EXECUTEINIOTHREAD
| WT_EXECUTELONGFUNCTION
);
37 QueueUserWorkItem(TestProc5
, x
, WT_EXECUTEINPERSISTENTTHREAD
);
38 QueueUserWorkItem(TestProc6
, x
, WT_EXECUTEINPERSISTENTIOTHREAD
);