Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
tpstimer.cpp
Abstract:
Contains Win32 thread pool services timer functions
Contents: TerminateTimers SHCreateTimerQueue (IECreateTimerQueue) SHDeleteTimerQueue (IEDeleteTimerQueue) SHSetTimerQueueTimer (IESetTimerQueueTimer) (NTSetTimerQueueTimer) SHChangeTimerQueueTimer (IEChangeTimerQueueTimer) SHCancelTimerQueueTimer (IECancelTimerQueueTimer) (NTCancelTimerQueueTimer) (InitializeTimerThread) (TimerCleanup) (CreateDefaultTimerQueue) (DeleteDefaultTimerQueue) (CleanupDefaultTimerQueue) (TimerThread) (AddTimer) (ChangeTimer) (CancelTimer)
Author:
Richard L Firth (rfirth) 10-Feb-1998
Environment:
Win32 user-mode
Notes:
Code reworked in C++ from NT-specific C code written by Gurdeep Singh Pall (gurdeep)
Revision History:
10-Feb-1998 rfirth Created
--*/
#include "priv.h"
#include "threads.h"
#include "tpsclass.h"
//
// functions
//
LWSTDAPI_(HANDLE) SHCreateTimerQueue( VOID ) { return CreateTimerQueue(); }
LWSTDAPI_(BOOL) SHDeleteTimerQueue( IN HANDLE hQueue ) { return DeleteTimerQueue(hQueue); }
LWSTDAPI_(BOOL) SHChangeTimerQueueTimer( IN HANDLE hQueue, IN HANDLE hTimer, IN DWORD dwDueTime, IN DWORD dwPeriod ) { return ChangeTimerQueueTimer(hQueue, hTimer, dwDueTime, dwPeriod); }
LWSTDAPI_(BOOL) SHCancelTimerQueueTimer( IN HANDLE hQueue, IN HANDLE hTimer ) { return DeleteTimerQueueTimer(hQueue, hTimer, INVALID_HANDLE_VALUE); }
// these we do alittle wrapping on.
LWSTDAPI_(HANDLE) SHSetTimerQueueTimer( IN HANDLE hQueue, IN WAITORTIMERCALLBACKFUNC pfnCallback, IN LPVOID pContext, IN DWORD dwDueTime, IN DWORD dwPeriod, IN LPCSTR lpszLibrary OPTIONAL, IN DWORD dwFlags ) { //
// Translate the flags from TPS flags to WT flags.
//
DWORD dwWTFlags = 0; if (dwFlags & TPS_EXECUTEIO) dwWTFlags |= WT_EXECUTEINIOTHREAD; if (dwFlags & TPS_LONGEXECTIME) dwWTFlags |= WT_EXECUTELONGFUNCTION;
HANDLE hTimer; if (CreateTimerQueueTimer(&hTimer, hQueue, pfnCallback, pContext, dwDueTime, dwPeriod, dwWTFlags)) { return hTimer; } return NULL; }
|