Source code of Windows XP (NT5)
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) 1991 Microsoft Corporation
Module Name:
bowtimer.h
Abstract:
This module declares definitions dealing with bowser timers.
Author:
Larry Osterman (larryo) 6-May-1991
Revision History:
6-May-1991 larryo
Created
--*/ #ifndef _BOWTIMER_
#define _BOWTIMER_
struct _TRANSPORT;
typedef NTSTATUS (*PBOWSER_TIMER_ROUTINE)( IN struct _TRANSPORT *Transport );
// BOWSER_TIMER flags:
// Canceled is TRUE when a timer is cancelled but is already in
// the dpc queue.
//
// AlreadySet is used to ensure we stop the timer before restarting it.
//
// Reset is set to TRUE when a timer has been stopped and restarted while
// in the dpc queue. The Lock is used to ensure ordered access.
// Note: a timer can be stopped and reset multiple times before it gets
// to the front of the dpc queue.
//
typedef struct _BOWSER_TIMER { KDPC Dpc; KTIMER Timer; KSPIN_LOCK Lock; KEVENT TimerInactiveEvent; PBOWSER_TIMER_ROUTINE TimerRoutine; PVOID TimerContext; LARGE_INTEGER Timeout; WORK_QUEUE_ITEM WorkItem; BOOLEAN AlreadySet; BOOLEAN Initialized; BOOLEAN Canceled; BOOLEAN SetAgain;
} BOWSER_TIMER, *PBOWSER_TIMER;
VOID BowserInitializeTimer( IN PBOWSER_TIMER Timer );
VOID BowserStopTimer ( IN PBOWSER_TIMER Timer );
VOID BowserUninitializeTimer( IN PBOWSER_TIMER Timer );
BOOLEAN BowserStartTimer ( IN PBOWSER_TIMER Timer, IN ULONG MillisecondsToExpireTimer, IN PBOWSER_TIMER_ROUTINE TimerExpirationRoutine, IN PVOID Context );
#endif // _BOWTIMER_
|