阅读:4569回复:9
几个关于usb驱动的概念问题
最近有几个概念问题一直未能搞清楚,请帮助:
1。何为客户驱动程序,它与用户应用程序,系统驱动程序有何关系?我们所要编写的是否就是客户驱动程序? 2。windows中有USBDI接口,为何不能让应用程序直接使用该接口,还要编写客户驱动?是因为用户态和核心态的关系吗? 请帮忙解惑!谢谢! :) |
|
最新喜欢:![]() |
沙发#
发布于:2007-09-13 15:11
受教了!!!!!!!
|
|
板凳#
发布于:2004-10-30 18:34
找一本关于USB方面的书好好看一看,什么问题都明白了。
|
|
地板#
发布于:2004-10-29 10:02
对USB设备的枚举过程也是在总线驱动中完成的吗!它如何将特定的设备交给特定的设备驱动程序管理呢!
|
|
地下室#
发布于:2004-10-15 13:27
一般而言,Windows(或任何其他的操作系统)只能为你提供总线驱动,最多还能提供一些标准设备驱动。所谓总线驱动就是帮助你处理复杂的总线协议,解析出你需要的数据包。
对于USB而言,它已经帮你完成了PNP枚举的绝大多数工作,还帮助你将各个EndPoint的数据解析出来,使得你不必关心过多的底层细节。同时,系统也提供了诸如HID, Printer, Mass Storage等标准的设备驱动。 但你也要想一想,系统是无法了解你自己设计的硬件和固件到底要完成什么功能。这好比你买来一根电线,这根电线是无法知道你要在上面传递什么信号,它只能为你提供一条通路。这也就是总线驱动所能做的事情了。所以,第三方个性化的设备,就需要提供相应的驱动。 当然,对于USB而言,客户驱动程序不是必需的,但确实是比较好的选择。你可以在应用层直接访问总线驱动,但缺点是显而易见的:你要自己处理设备的热插拔;比较频繁地往返于应用层与系统层之间;大大降低系统的效率等等。 众所周知的情况是:系统分层设计会带来巨大好处。无论是应用程序的B/S or C/S架构,网络协议的7层设计,都到来了优势。 客户驱动使得设备细节被屏蔽,更好的方式是在驱动程序上面再为用户提供接口DLL或ActiveX,则使得应用更加友好和便利。 |
|
|
5楼#
发布于:2004-10-14 21:51
用户被禁言,该主题自动屏蔽! |
|
6楼#
发布于:2004-09-07 14:55
还是不明白~~~!
顺便问问: 在usb中,什么是总线驱动程序,是windows提供的usbd.sys文件吗? 我们要写的是过滤驱动程序吗? :( |
|
|
7楼#
发布于:2002-04-30 09:53
谢谢各位。
也就是说客户应用程序可以使用客户驱动程序访问设备,客户驱动程序使用USBDI接口访问底层。 还有,既然USBDI提供的大部分是内部IOCTL,只有内核驱动可以调用内部IOCTL,那么客户驱动程序也位于内核态了。并且客户驱动应该提供客户应用层访问的接口。 以上概念对吧! |
|
8楼#
发布于:2002-04-29 10:04
USBDI提供的大部分是内部IOCTL,只有内核驱动可以调用内部IOCTL,听说USBDI也提供了一些外部IOCTL可直接由应用程序调用,DDK下又例子,好想叫USBVIEW,我没认真研究过。
|
|
|
9楼#
发布于:2002-04-29 09:03
客户驱动也就是说是设备的驱动。
是你用来驱动usb设备用的。 而系统驱动和用户驱动则是使在主机上的usb口能够工作。 |
|
|