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

📄 readme.txt

📁 本程序用以示范如何挂接windows系统下的硬件中断(如并口中断
💻 TXT
字号:

1.包含的文件:
将RegIsaInt.sys拷贝到WINNT\system32\drivers\目录下
2.运行RegIsaIntExe.exe.



软件接口:

提供了一个类:CInstallSys


成员函数:
BOOL CInstallSys::ConnectInterrupt(unsigned short m_IrqNum, BOOL m_bTrigManner)
入口参数:
unsigned short m_IrqNum:需要挂接的IRQ号。
BOOL mbTrigManner:为真,则为边沿触发即Latched;为假,则为电平触发即level sensitive.
返回值为TRUE,则成功挂接中断,否则失败。

BOOL CInstallSys::DisConnectInt(unsigned short m_IrqNum, BOOL m_bTrigManner)
入口参数,可以任意输入,留着以后扩展和改动。
返回值没有作用。

成员变量:
HANDLE InterruptEvent;
作用:
提供了一个事件变量,用于通知应用程序,一个硬件中断的到来。

举例如下:
/*生成一个对象*/
CInstallSys isa_int;
/*挂接中断*/
if(isa_int.ConnectInterrupt(7,TRUE)==TRUE) 
{
    /*create a new process to monitor the event object*/
    AfxBeginThread(ThreadListen,GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
}
else
{
}

/*监听事件*/
UINT ThreadListen(LPVOID pParam)
{
	DWORD wait_state;
	while(bListen)
	{
		wait_state=WaitForSingleObject(isa_int.InterruptEvent,5000);
		if(wait_state==WAIT_OBJECT_0)
		{
			ulIntTimes++;
			SendMessage((HWND)pParam,WM_EVENT_COME,ulIntTimes,0);
		}
	}
	return true;
}
/*断开连接*/
isa_int.DisConnectInt(7,TRUE);/*可以任意输入两个参数*/

/*结束*/

⌨️ 快捷键说明

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