superjet
驱动牛犊
驱动牛犊
  • 注册日期2003-12-10
  • 最后登录2010-03-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2132回复:15

!!!讨论到底:Miniport Driver with a WDM Lower Interface

楼主#
更多 发布于:2003-12-26 11:25
目前我所了解到的:此类驱动只是在的上层接口还是NDIS,只不过把下层接口通过IRP转至WDM设备.

我提出几个问题,希望大家讨论:
1.在NdisMGetDeviceProperty()中为微端口驱动程序带入一个WDM设备的OBJECT_DEVICE结构句柄,那么这个结构句柄,NDIS又是如何得到?
2.我看到目前USB网卡的驱动程序中,只有一个网卡INF文件,而没有USB设备的INF文件?为什么? 如没有USB设备驱动程序,微端口驱动程序的IRP发给谁呢?如有USB设备驱动程序,他与普通USB设备驱动程序有什么不同?

目前正在作此项工作,希望大家多多讨论,多多提问,共同进步?

最新喜欢:

minewdyminewd...
superjet
驱动牛犊
驱动牛犊
  • 注册日期2003-12-10
  • 最后登录2010-03-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-26 11:31
因为是新手,再向大侠提问一个问题:
开发此类驱动一般步骤是什么?开发中应注意什么?怎样测试此类驱动程序?常用的辅助软件(调试,测试等等)是什么?

[编辑 -  12/26/03 by  superjet]
qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-26 14:39
据我所知,miniport Driver里直接打开USB pipe,然后把数据发下去。

NDIS WDM的miniport Driver是把WDM Function Driver和miniport
合在一起了,所以只能算一个驱动,只要一个inf文件就能完成安装
qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-26 14:40
据我所知,miniport Driver里直接打开USB pipe,然后把数据发下去。

NDIS WDM的miniport Driver是把WDM Function Driver和miniport
合在一起了,所以只能算一个驱动,只要一个inf文件就能完成安装

BTW:我也想问一下Ndis wdm驱动怎么测试
superjet
驱动牛犊
驱动牛犊
  • 注册日期2003-12-10
  • 最后登录2010-03-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-26 15:59
qhyntjs :
如miniport Driver是把WDM Function Driver和miniport
合在一起了,那么WDM应该在DriverEntry中的初始化操作如何实现呢?
qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-26 16:13
WDM miniport是指可以把上层发来的数据(Packet)转换成IRP发给底层驱动,WDM miniport本身不处理IRP,所以WDM miniport不需要像普通WDM Function那样初始化。

另外,你的问题1中NDIS是怎样得到那个句柄的,你完全可以不管,拿来用就是了:)
superjet
驱动牛犊
驱动牛犊
  • 注册日期2003-12-10
  • 最后登录2010-03-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-27 10:59
再次请教qhyntjs :
也许我没说清楚,我想问的是:WDM Miniport Driver 驱动程序发送IRP给底层的驱动程序,那么这个驱动程序应该是WDM的驱动程序吧,这个驱动程序需要我来做,还是操作系统已经做好了呢?
如果操作系统已经做好了,那么他怎么知道我用接口是USB,还是1394呢?
qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-12-27 12:20
这里的\"底层驱动\"一般是总线驱动和类驱动,一般由系统提供,不要自己编写.

具体你的miniport driver用什么样的底层驱动,是在你的inf文件里指定的,在你的inf文件里指定硬件 ID为USB\\***,那么底层驱动就为USB类驱动和USB总线驱动
superjet
驱动牛犊
驱动牛犊
  • 注册日期2003-12-10
  • 最后登录2010-03-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-12-31 14:35
我看过了DDK上的e100bex上网卡代码,对比我要做的USB网卡,请教qhyntjs 个问题:miniport驱动发数据到USB时,可发IRP给USB,但接收时,我怎样知道USB有数据接收到呢?DDK上说,要发特殊总线命令,不知是说什么意思? 在Programming the windows driver model 2nd上说可以通过IOCTL来等待,但那是在应用程序中(用户模式下),在核心模式下可以这样吗? 我可以重开一个线程来监控这个IOCTL吗?
qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-12-31 17:31
因为PC和USB设备通信都是向设备发送URB包实现的,

所以要知道有数据来,必须进行轮询,即PC轮询设备.
dvlper
驱动牛犊
驱动牛犊
  • 注册日期2003-11-25
  • 最后登录2004-12-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-12-31 19:31
请问qhyntjs,如果通过com进行两台机的ip通信,
是不是也是类似于URB一样要发特定的包呢?
Allen_tian
驱动牛犊
驱动牛犊
  • 注册日期2004-01-06
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-01-08 16:50
我也要写同样的东西。

有没有sample 给我借鉴。
再拜
不要问我微软是怎么面试的
qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-01-08 18:27
com有中断,不用轮询
zhaihua
驱动中牛
驱动中牛
  • 注册日期2003-10-11
  • 最后登录2007-07-24
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-03-20 22:36
器件提供的通用驱动提供的时IOCTL_XXX这样的接口,怎么去去和微端口驱动联系呢?
谢谢!
没钱的日子真难过! 大哥,拉兄弟一把.
iwub
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2009-06-22
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望60点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-03-21 15:46
本质上是miniport驱动,wdm lower edge 只是提供了访问设备的方法,从驱动的上班部分看就是“mac”的功能,但是整个驱动就是工作在MAC层。系统usb总线驱动usbdi.sys微软已经提供了

[编辑 -  3/21/04 by  iwub]
iwub
zhaihua
驱动中牛
驱动中牛
  • 注册日期2003-10-11
  • 最后登录2007-07-24
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-03-21 20:01
iwub你好!
因为我用的是CYPRESS的USB片子,公司提供了一个通用的驱动,也就是提供了IOCTL_XXX这样的接口,所以我想还用他提供的驱动,这样我只写中间层驱动,进行截包并处理,然后交给USB驱动,可以这样吗?
我的QQ:27309455.
谢谢! :D
没钱的日子真难过! 大哥,拉兄弟一把.
游客

返回顶部