ReactOS 0.4.15-dev-8092-ge0ba2f3
apc2.c
Go to the documentation of this file.
1
2#include <windows.h>
3#include <stdio.h>
4
6 LPVOID lpArg,
7 DWORD dwTimerLowValue,
8 DWORD dwTimerHighValue )
9{
10 printf("APC Callback %lu\n", *(PDWORD)lpArg);
11}
12
13
14int main()
15{
16 HANDLE hTimer;
19 DWORD value = 1;
20
22
23 if (!hTimer)
24 {
25 printf("CreateWaitableTimer failed!\n");
26 return 0;
27 }
28
29 DueTime.QuadPart = -(LONGLONG)(5 * 10000000);
30
32 hTimer,
33 &DueTime,
34 2001 /*interval (using an odd number to be able to find it easy in kmode) */,
36 &value /*callback argument*/,
37 FALSE );
38
39 if (!bSuccess)
40 {
41 printf("SetWaitableTimer failed!\n");
42 return 0;
43 }
44
45 for (;value <= 10; value++ )
46 {
47 SleepEx(INFINITE, TRUE /*alertable*/ );
48 }
49
50 CloseHandle( hTimer );
51 return 0;
52}
53
VOID CALLBACK TimerApcProc(LPVOID lpArg, DWORD dwTimerLowValue, DWORD dwTimerHighValue)
Definition: apc2.c:5
int main()
Definition: apc2.c:14
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define CloseHandle
Definition: compat.h:739
#define CALLBACK
Definition: compat.h:35
static BOOLEAN bSuccess
Definition: drive.cpp:433
#define INFINITE
Definition: serial.h:102
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
#define printf
Definition: freeldr.h:97
DWORD * PDWORD
Definition: pedump.c:68
DWORD WINAPI SleepEx(IN DWORD dwMilliseconds, IN BOOL bAlertable)
Definition: synch.c:802
BOOL WINAPI SetWaitableTimer(IN HANDLE hTimer, IN const LARGE_INTEGER *pDueTime, IN LONG lPeriod, IN PTIMERAPCROUTINE pfnCompletionRoutine OPTIONAL, IN OPTIONAL LPVOID lpArgToCompletionRoutine, IN BOOL fResume)
Definition: synch.c:382
int64_t LONGLONG
Definition: typedefs.h:68
Definition: pdh_main.c:94
_In_ WDFTIMER _In_ LONGLONG DueTime
Definition: wdftimer.h:190
#define CreateWaitableTimer
Definition: winbase.h:3761