| 
					阅读:2068回复:11
				 应用程序能否直接调用驱动里面的函数?怎样调用?
					我用的是DriverStudio编程,windows2000平台。想把大量的函数全部移到内核态执行,请问在驱动中能否象DLL那样输出函数,应用程序直接调用这些函数就可以和硬件进行通信?(不要Writefile,readfile,deviceiocontrol等)
 我是初学,希望大虾详细解释。谢谢! | |
| 最新喜欢: luozha... 
 | 
| 沙发#发布于:2002-06-04 09:38 
					看到啦!
 谢谢pjf! | |
| 
 | 
| 板凳#发布于:2002-06-04 09:29 
					啊?论坛首页,看最上面。呵呵,裸灌				 | |
| 地板#发布于:2002-06-04 09:23 收件箱 收件箱是什么意思啊?是否让我收邮件? | |
| 
 | 
| 地下室#发布于:2002-06-04 09:19 
					收件箱				 | |
| 5楼#发布于:2002-06-04 08:51 
					回pjf:
 1、具体一点,什么样的加密卡? 一个PCI卡,可以实现RSA、DES、HASH等通用算法,也可以实现国密办指定的算法。我用driverstudio作了驱动程序,在驱动程序上面做了一个DLL库,给用户提供API。现在想把DLL库中的函数也作到驱动中去。 2。ring3-〉Ring0需经过调用/中断门(较新机器有sysenter/sysexit),你要在应用中调用内核函数,第一要取得函数地址(前面贴子有介绍),第二要构造自己的调用门。后者一般需要在驱动中做。总之你用这种办法不如用DeviceIoControl。 前面帖子有介绍?我查了查,怎么也找不到,能否给我一个连接。 3、建议你去看看有关保护模式的内容。 保护模式我也看过,就是不太明白。能否给我通俗的解释一下调用门和中断门的概念吗? 谢谢! | |
| 
 | 
| 6楼#发布于:2002-06-03 17:58 
					建议你去看看有关保护模式的内容。
 ring3-〉Ring0需经过调用/中断门(较新机器有sysenter/sysexit),你要在应用中调用内核函数,第一要取得函数地址(前面贴子有介绍),第二要构造自己的调用门。后者一般需要在驱动中做。总之你用这种办法不如用DeviceIoControl。 ------------------------ 内核中当然可以有DLL,也可有exe(如果里面有应用级函数,比如Win32API,不能运行它们)。需你自己加载它们,它们导出的函数与ntoskrnl.exe导出的内核函数一样,你可在驱动中用之。没什么实用价值。 ------------------ 具体一点,什么样的加密卡? -------------------- 微软装载了驱动,SetCommMask等API只不过提供一个服务接口方便你使用。 | |
| 7楼#发布于:2002-06-03 17:15 
					估计也是用这种方法
 无非是读写io端口的寄存器而已。 | |
| 
 | 
| 8楼#发布于:2002-06-03 17:09 
					我明白你的意思。
 谢谢回答!给了我一个确切的答复。 但我不明白的另一点是串口通信中有一些函数SetCommMask是如何实现的呢? [编辑 - 6/3/02 by Jim_little] | |
| 
 | 
| 9楼#发布于:2002-06-03 17:03 
					当然不可以,操作系统规定应用层和内核通信只能通过固定的接口:
 Writefile,readfile,deviceiocontrol等 但是可以换个方式实现,你可以在内核实现你的函数,不过不是像dll那样的通过函数名向外显露,可以用ioctl码,也就是说你在内核定义不同功能的函数,然后在应用层通过deviceiocontrol来调用,然后你可以写个dll来封装这些deviceiocontrol,最后你的应用程序就可以调用dll中的函数来访问内核了,效果是一样的。 明白??? | |
| 
 | 
| 10楼#发布于:2002-06-03 16:38 
					巧了!我就是做加密卡的,想把DLL中的函数放到内核中。
 你用的是那家公司的加密卡? | |
| 
 | 
| 11楼#发布于:2002-06-03 16:34 
					这个问题和我以前贴的那个“内核态有没有DLL的东西存在”有点相关。最近我也被同样的问题所困扰,我现在正在使用一家公司的加密卡,在使用的过程中,应用程序只需要和几个DLL放在一个目录里就可以调用加密卡的API,奇怪的是:该公司的加密卡安装软件根本就没有安装什么驱动程序,只有那些DLL(当然也有一些Lib)。所以,我不知道该公司的DLL是怎样访问加密卡的!!我都感觉奇怪死了!真的希望能有明白人指点一二!! :mad:				 | |
 
							 
				 
				