⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.h

📁 pppoe client
💻 H
字号:

//********************************************************************
//	日期:	2004/08/24 - 24:8:2004   18:57
//	名前:	tiamo
//	描述:	timer routine
//*********************************************************************

#pragma once

// timer sig
#define TIMER_SIG														MAKE_SIG('T','I','M','E')

// forward declaration
typedef struct __tagTimerItem *PTIMER_ITEM;

// timer routine
typedef VOID (*TIMER_ROUTINE)(PTIMER_ITEM pItem,PVOID pContext,PVOID pCancelContext);

// timer
typedef struct __tagTimer
{
	LIST_ENTRY										m_ltTimerItemsHead;		// timer item head
	NDIS_TIMER										m_ndisTimer;			// ndis timer
	ULONG											m_ulSig;				// sig
	NDIS_SPIN_LOCK									m_lockSelf;				// lock self
}TIMER,*PTIMER;

// timer item
typedef struct __tagTimerItem
{
	LIST_ENTRY										m_ltTimerItemAnchor;	// list anchor
	TIMER_ROUTINE									m_pTimerRoutine;		// routine
	LARGE_INTEGER									m_ullExecuteTime;		// exec time
	PVOID											m_pContext;				// context
}TIMER_ITEM,*PTIMER_ITEM;

// public routine
extern "C"
{
	// init timer system,PASSIVE_LEVEL only
	VOID InitializeTimerSystem();

	// shut down timer system,<= DISPATCH_LEVEL
	VOID ShutdownTimerSystem();

	// schedule a timer call,<= DISPATCH_LEVEL
	VOID ScheduleTimerItem(PTIMER_ITEM pItem,TIMER_ROUTINE pRoutine,ULONG ulMsDelay,PVOID pContext);

	// cancel timer call <= DISPATCH_LEVEL
	VOID CancelTimerItem(PTIMER_ITEM pItem,PVOID pCancelContext);

	// init timer item <= DISPTACH_LEVEL
	VOID InitializeTimerItem(PTIMER_ITEM pItem);
}
	
// private routine
extern "C"
{
	// common timer routine for ndis init timer,run only at DISPATCH_LEVEL
	VOID CommonTimerRoutine(PVOID pSystem1,PVOID pContext,PVOID pSystem3,PVOID pSystem4);

	// set timer run only at DISPATCH_LEVEL
	VOID SetTimer(LARGE_INTEGER ullCurrentTime);
}

// global timer
extern TIMER g_timer;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -