LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:3466回复:10

驱动程序如何相互调用???

楼主#
更多 发布于:2001-04-09 00:53
请教各位大虾,如何实现两个WDM驱动程序的相互调用,就象两个DLL调用一样???
穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-04-09 10:21
Use CallDriver
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-04-16 16:53
KLowerDevice
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-04-19 08:35
I don't think so. I've ever called a USB driver within a smartcard driver. They are not attached to the same device stack (I think so).
I think the upper drvice can send IRPs to the lower device to communicate with it.
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
notwind
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2007-08-22
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-04-25 10:29
如果被调用的驱动程序是别人开发的,没有准备被调用,那它还能不能被调用?
SORRY,听起来象绕口令,也就是说,一个驱动程序要怎样做才能被调用?
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-04-25 11:18
那样的话,应该是不能被别的driver调用的。因为驱动之间的调用要实现internal device io control,而且IOCTL CODE也要对应起来。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-05-14 18:17
Internal Device Io Control啊!
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
wuqix
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2008-06-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-05-15 09:43
只要你的驱动被命名,就有被调用的可能
wuqix
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2008-06-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-05-15 15:33
具体点说是IoCreateDevice()的第三个参数,是个PUNICODE_STRING,其实是向NT的对象管理器汇报了一个对象,有了这个名字,其余内核态的组件就有可能通过对象管理器找到这个驱动
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-05-22 08:57
[QUOTE]原本由 LitteSW 发表
[B]我看Driver Work帮助中的How to Send a Request to Another Device时,有个问题看不明白。

I.IoctlCode(NEXT) = IOCTL_SERIAL_GET_BAUD_RATE;
这句是指我自定义的IOCTL码。
I.MajorFunction(NEXT) = IRP_MJ_DEVICE_CONTROL;
是否是指被调用驱动程序中的DeviceControl成员函数?
 [/B][/QUOTE]
1.yes
2.是一个IRP,发给接受调用的driver,这里就是Device Io Control的处理函数.
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
sttypxx
驱动牛犊
驱动牛犊
  • 注册日期2001-05-17
  • 最后登录2011-04-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2001-05-22 09:38
首先我们要注意这样一个问题:
驱动程序是全局性的系统部件,一个驱动程序是可以看见别的驱动程序的。请大家仔细看一看2000DDK中的鼠标类驱动程序与鼠标功能驱动程序,鼠标类驱动程序(mouclass)提供给鼠标功能驱动程序的回调函数,鼠标功能驱动程序直接调用了鼠标类驱动程序(mouclass)提供的函数!!
驱动程序调用的方式有:
①使用别的驱动程序提供的调用接口服务,调用发声驱动beep.sys如何实现?
②直接调用对方,如前面提到的鼠标类驱动程序和鼠标功能驱动程序!
有事多交流!
游客

返回顶部