阅读:2132回复:15
!!!讨论到底:Miniport Driver with a WDM Lower Interface
目前我所了解到的:此类驱动只是在的上层接口还是NDIS,只不过把下层接口通过IRP转至WDM设备.
我提出几个问题,希望大家讨论: 1.在NdisMGetDeviceProperty()中为微端口驱动程序带入一个WDM设备的OBJECT_DEVICE结构句柄,那么这个结构句柄,NDIS又是如何得到? 2.我看到目前USB网卡的驱动程序中,只有一个网卡INF文件,而没有USB设备的INF文件?为什么? 如没有USB设备驱动程序,微端口驱动程序的IRP发给谁呢?如有USB设备驱动程序,他与普通USB设备驱动程序有什么不同? 目前正在作此项工作,希望大家多多讨论,多多提问,共同进步? |
|
最新喜欢:minewd... |
沙发#
发布于:2003-12-26 11:31
因为是新手,再向大侠提问一个问题:
开发此类驱动一般步骤是什么?开发中应注意什么?怎样测试此类驱动程序?常用的辅助软件(调试,测试等等)是什么? [编辑 - 12/26/03 by superjet] |
|
板凳#
发布于:2003-12-26 14:39
据我所知,miniport Driver里直接打开USB pipe,然后把数据发下去。
NDIS WDM的miniport Driver是把WDM Function Driver和miniport 合在一起了,所以只能算一个驱动,只要一个inf文件就能完成安装 |
|
地板#
发布于:2003-12-26 14:40
据我所知,miniport Driver里直接打开USB pipe,然后把数据发下去。
NDIS WDM的miniport Driver是把WDM Function Driver和miniport 合在一起了,所以只能算一个驱动,只要一个inf文件就能完成安装 BTW:我也想问一下Ndis wdm驱动怎么测试 |
|
地下室#
发布于:2003-12-26 15:59
qhyntjs :
如miniport Driver是把WDM Function Driver和miniport 合在一起了,那么WDM应该在DriverEntry中的初始化操作如何实现呢? |
|
5楼#
发布于:2003-12-26 16:13
WDM miniport是指可以把上层发来的数据(Packet)转换成IRP发给底层驱动,WDM miniport本身不处理IRP,所以WDM miniport不需要像普通WDM Function那样初始化。
另外,你的问题1中NDIS是怎样得到那个句柄的,你完全可以不管,拿来用就是了:) |
|
6楼#
发布于:2003-12-27 10:59
再次请教qhyntjs :
也许我没说清楚,我想问的是:WDM Miniport Driver 驱动程序发送IRP给底层的驱动程序,那么这个驱动程序应该是WDM的驱动程序吧,这个驱动程序需要我来做,还是操作系统已经做好了呢? 如果操作系统已经做好了,那么他怎么知道我用接口是USB,还是1394呢? |
|
7楼#
发布于:2003-12-27 12:20
这里的\"底层驱动\"一般是总线驱动和类驱动,一般由系统提供,不要自己编写.
具体你的miniport driver用什么样的底层驱动,是在你的inf文件里指定的,在你的inf文件里指定硬件 ID为USB\\***,那么底层驱动就为USB类驱动和USB总线驱动 |
|
8楼#
发布于:2003-12-31 14:35
我看过了DDK上的e100bex上网卡代码,对比我要做的USB网卡,请教qhyntjs 个问题:miniport驱动发数据到USB时,可发IRP给USB,但接收时,我怎样知道USB有数据接收到呢?DDK上说,要发特殊总线命令,不知是说什么意思? 在Programming the windows driver model 2nd上说可以通过IOCTL来等待,但那是在应用程序中(用户模式下),在核心模式下可以这样吗? 我可以重开一个线程来监控这个IOCTL吗?
|
|
9楼#
发布于:2003-12-31 17:31
因为PC和USB设备通信都是向设备发送URB包实现的,
所以要知道有数据来,必须进行轮询,即PC轮询设备. |
|
10楼#
发布于:2003-12-31 19:31
请问qhyntjs,如果通过com进行两台机的ip通信,
是不是也是类似于URB一样要发特定的包呢? |
|
11楼#
发布于:2004-01-08 16:50
我也要写同样的东西。
有没有sample 给我借鉴。 再拜 |
|
|
12楼#
发布于:2004-01-08 18:27
com有中断,不用轮询
|
|
13楼#
发布于:2004-03-20 22:36
器件提供的通用驱动提供的时IOCTL_XXX这样的接口,怎么去去和微端口驱动联系呢?
谢谢! |
|
|
14楼#
发布于:2004-03-21 15:46
本质上是miniport驱动,wdm lower edge 只是提供了访问设备的方法,从驱动的上班部分看就是“mac”的功能,但是整个驱动就是工作在MAC层。系统usb总线驱动usbdi.sys微软已经提供了
[编辑 - 3/21/04 by iwub] |
|
|
15楼#
发布于:2004-03-21 20:01
iwub你好!
因为我用的是CYPRESS的USB片子,公司提供了一个通用的驱动,也就是提供了IOCTL_XXX这样的接口,所以我想还用他提供的驱动,这样我只写中间层驱动,进行截包并处理,然后交给USB驱动,可以这样吗? 我的QQ:27309455. 谢谢! :D |
|
|