interrupt.cpp

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

CPP
117
字号
// 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;

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

                 cinter.BusNumber = 1;
                 cinter.DevID = 0x2f00;
                 cinter.nVector =0;
                 cinter.VenID = 0x14f1;
                 cinter.itype = PCIBus;
                 cinter.lpParameter = NULL;
                 cinter.newintr = newintr;  
                 pi1 = RtmConnectInterrupt(hRTMDLL ,&cinter);

                 Sleep(1000);

                 error = _isr;

                 RtmDisConnectInterrupt(hRTMDLL ,pi1);

             return RtmClose(hRTMDLL);

}




   


#pragma check_stack(on) 

#pragma code_seg()

⌨️ 快捷键说明

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