windows-nt/Source/XPSP1/NT/net/rras/ipx/sap/timermgr.h
2020-09-26 16:20:57 +08:00

167 lines
3.3 KiB
C

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
net\routing\ipx\sap\timermgr.h
Abstract:
Timer queue manager for SAP agent. Header file
Author:
Vadim Eydelman 05-15-1995
Revision History:
--*/
#ifndef _SAP_TIMERMGR_
#define _SAP_TIMERMGR_
// Timer request parameters
typedef struct _TM_PARAM_BLOCK TM_PARAM_BLOCK, *PTM_PARAM_BLOCK;
struct _TM_PARAM_BLOCK {
LIST_ENTRY link;
BOOL (*ExpirationCheckProc) (PTM_PARAM_BLOCK, PVOID);
DWORD dueTime;
};
/*++
*******************************************************************
C r e a t e T i m e r Q u e u e
Routine Description:
Allocates resources for timer queue
Arguments:
wakeObject - sync object, to be signalled when
timer manager needs a shot to process its queue
Return Value:
NO_ERROR - resources were allocated successfully
other - reason of failure (windows error code)
*******************************************************************
--*/
DWORD
IpxSapCreateTimerQueue (
HANDLE *wakeObject
);
/*++
*******************************************************************
D e l e t e T i m e r Q u e u e
Routine Description:
Releases all resources associated with timer queue
Arguments:
None
Return Value:
NO_ERROR - operation completed OK
*******************************************************************
--*/
VOID
IpxSapDeleteTimerQueue (
void
);
/*++
*******************************************************************
E x p i r e T i m e r Q u e u e
Routine Description:
Expires (completes) all requests in timer queue
Arguments:
None
Return Value:
None
*******************************************************************
--*/
VOID
ExpireTimerQueue (
void
);
/*++
*******************************************************************
E x p i r e L R R e q u s t s
Routine Description:
Expires (completes) Low Resolution timer requests
that return true from expiration check routine
Arguments:
context - context to pass to expiration check routine
Return Value:
None
*******************************************************************
--*/
VOID
ExpireLRRequests (
PVOID context
);
/*++
*******************************************************************
P r o c e s s T i m e r Q u e u e
Routine Description:
Process timer queues and moves expired requests to completion queue
This routine should be called when wake object is signalled
Arguments:
None
Return Value:
None
*******************************************************************
--*/
VOID
ProcessTimerQueue (
void
);
/*++
*******************************************************************
A d d H R T i m e r R e q u e s t
Routine Description:
Enqueues request for hi-res timer (delay in order of msec)
Arguments:
treq - timer parameter block: dueTime field must be set
Return Value:
None
*******************************************************************
--*/
VOID
AddHRTimerRequest (
PTM_PARAM_BLOCK item
);
/*++
*******************************************************************
A d d L R T i m e r R e q u e s t
Routine Description:
Enqueues request for lo-res timer (delay in order of sec)
Arguments:
treq - timer parameter block: dueTime field must be set
Return Value:
None
*******************************************************************
--*/
VOID
AddLRTimerRequest (
PTM_PARAM_BLOCK item
);
#endif