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

📄 wdt.h

📁 监测系统源代码
💻 H
字号:
/////////////////////////////////////////////////////////////////////////
//Module Name:
//
//    WDT.h  
//
//Abstract:   WDT interface.
//
//Environment:
//
//    Windows NT/2000/XP
//
//Author:    mz.yang  2008.9
//
/////////////////////////////////////////////////////////////////////////

#ifndef _WDT_H_
#define _WDT_H_

#include <windows.h>

#define WDT_MODE_RESET					1
#define	WDT_MODE_INTERRUPT				2	

#define WDT_COUNTER_UNIT_SECOND			1
#define WDT_COUNTER_UNIT_MINUTE			2

#define IRQ_SEARCH_AUTO				   -1

#define OVERFLOW_EVENT_SHUTDOWN 		1
#define OVERFLOW_EVENT_REBOOT			2
#define OVERFLOW_EVENT_SET_EVENT		3
#define OVERFLOW_EVENT_SEND_MESSAGE		4
#define OVERFLOW_EVENT_CALL_FUNC		5

// WDT overflow message name
#define WDT_OVERFLOW_MESSAGE_NAME "WDTOverflowMessage"

// WDT overflow message ID
UINT  WM_WDT_OVERFLOW_MESSAGE;

// User call back function point type.
#ifndef WDTCallBack
	typedef void (_stdcall * WDTCallBack)(void *pContext);
#endif

//*****************************************************************************
//
// EVOCIO Driver init routine. 2007.7
//
//*****************************************************************************
/////////////////////////////////////////////////////////////////////////
//Function Description:
//	Install EVOCIO driver dynamic, and open device.
//
//Parameters:
//	none.
//
//Return Value:
//	true  : init succeed.
//	false : init failed.	
//			
//////////////////////////////////////////////////////////////////////////
bool _stdcall InitEVOCIO();


/////////////////////////////////////////////////////////////////////////
//Function Description:
//	Close device, and remove EVOCIO driver.
//
//Parameters:
//	none.
//
//Return Value:
//	void.
//			
//////////////////////////////////////////////////////////////////////////
void _stdcall ShutdownEVOCIO();


//*****************************************************************************
//
// Super IO WDT interface routine. 2008.9
//
//*****************************************************************************
/////////////////////////////////////////////////////////////////////////
//Function Description:
//	Create WDT.
//
//Parameters:
//  Mode        - WDT working mode:
//					1 : case system reset when WDT time out.
//					2 : case an INT when WDT time out.
//	Irq			- Command code:
//					-1 : Search system free IRQ automatic.
//					3,4,5,7,9,12,14,15 : WDT work in interrupt mode.this value
//						  is WDT IRQ resource,when WDT time out,it will cause a
//						  interrupt,call WDTRegisterTimeOutEvent() to register
//						  WDT time out operation mode.
//
//Return Value:
//	Reset mode:
//		0 : Create WDT successful.
//		-1 : Invalid parameters.
//		-2 : WDT already setuped,user need call "WDTDestroy" before setup it again.
//	Interrupt mode:
//		Serch IRQ number automatic:	
//			0 ~ 15	: Create WDT successful and the return value is the WDT
//					  actual used IRQ number(isa IRQ : 3,4,5,6,7,9,10,11,14,15).
//			-1		: Invalid parameters.
//			-2		: WDT already created,user need call "WDTDestroy" before setup 
//					  it again.
//			-3		: No interrupt resource can use in the system.
//		User set IRQ:
//			0		: Create WDT successful.
//			-1      : Invalide parameters.
//			-2		: WDT already created,user need call "WDTDestroy" before setup 
//					  it again.
//			-3		: The IRQ number is conflict with others device.
//			
//////////////////////////////////////////////////////////////////////////
int _stdcall WDTCreate(int Mode,int Irq);


/////////////////////////////////////////////////////////////////////////
//Function Description:
//	Delete WDT.
//
//Parameters:
// None.
//
//Return Value:
//	0			- Destroy WDT successful.
//	-1			- WDT never create.	
//  -2			- Destroy WDT failed.
//			
//////////////////////////////////////////////////////////////////////////
int _stdcall WDTDestroy();


/////////////////////////////////////////////////////////////////////////
//Function Description:
//	Enable WDT.
//
//Parameters:
//	Unit		- WDT counter unit:
//					0 : second.
//					1 : minute.
//  Time		- Time value.
//
//Return Value:
//	0			- Enable WDT successful.
//	-1			- Invalid parameters.
//  -2			- WDT never create.
//			
//////////////////////////////////////////////////////////////////////////
int _stdcall WDTEnable(int Unit,int Time);


/////////////////////////////////////////////////////////////////////////
//Function Description:
//	Disable WDT.
//
//Parameters:
//	none.
//
//Return Value:
//	0			- Enable WDT successful.
//	-1			- WDT never create.	
//			
//////////////////////////////////////////////////////////////////////////
int _stdcall WDTDisable();


/////////////////////////////////////////////////////////////////////////
//Function Description:
//	Get WDT counter current value.
//
//Parameters:
//  Operation		- the way to deal with WDT time out.
//						0 : shutdown system.
//						1 : reboot system.
//						2 : set event point by "Event" parameter.
//						3 : send message named "WDT".
//						4 : call callback function point by "CallBackFunc".
//	EventHandle		- Event handle of user created.
//	CallBackFunc    - User callback function pointer.
//	pContext		- User callback function parameter.
//
//Return Value:
//	0		- Register WDT Overflow event successful.
//	-1		- Register WDT Overflow event failed.
//			
//////////////////////////////////////////////////////////////////////////
int _stdcall WDTRegisterOverflowEvent(int Operation,HANDLE EventHandle,WDTCallBack CallBackFunc,void *pContext);


/////////////////////////////////////////////////////////////////////////
//Function Description:
//	Get WDT counter current value.
//
//Parameters:
//	none.
//
//Return Value:
//	0 ~ 255		- WDT counter current value.
//	-1			- Read WDT counter current value failed.
//	-2			- Hardware not support.	
//			
//////////////////////////////////////////////////////////////////////////
int _stdcall WDTReadCounterVal();


#endif

⌨️ 快捷键说明

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