hinterrupt.cpp

来自「http down source code for driver develop」· C++ 代码 · 共 111 行

CPP
111
字号
// interrupt.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <devioctl.h>
#include "..\\..\\include\\rtmdll.h"





#pragma bss_seg( "RTMBSS" )
int k_stack;
int k_stack1;
#pragma  bss_seg()

HANDLE hRTMDLL;

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
        hRTMDLL = hModule;
        return TRUE;
}




#pragma data_seg("RTMDATA")
DWORD _isr = 0;



int initLpt =0;
unsigned short dbit = 1;
#pragma data_seg()


#pragma check_stack(off) 

#pragma code_seg("RTMCODE")


void newintr(void *)
{
// generate exception 
// char *p = NULL;
//    *p =1;
	_isr++;
}




#pragma code_seg()


#pragma check_stack(on) 




int  th_end = 1;

HANDLE pi1;
HANDLE pi2;



extern "C"  int WINAPI RTXEntry(int tmresol)
{
 RTMCONNINTERRUPT cinter;
 int error = 0;

              if(RtmInit(hRTMDLL,KERNEL_MODE) == FALSE) return 0;
           

                 cinter.BusNumber = 0;
                 cinter.nVector =1;
                 cinter.itype = Isa;
                 cinter.lpParameter = NULL;
                 cinter.newintr = newintr;  

                 pi1 = RtmHookInterrupt (hRTMDLL ,&cinter);
                 error = _isr; 
                 error = _isr; 
                 error = _isr; 

                 RtmUnhookInterrupt (hRTMDLL ,pi1);

             return RtmClose(hRTMDLL);

}




   


#pragma check_stack(on) 

#pragma code_seg()

⌨️ 快捷键说明

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