阅读:1985回复:5
有谁对内核流的驱动比较熟悉?
小弟我对内核流驱动总有一个困惑,内核流驱动是不是和一般驱动不太一样?怎么见不到AddDevice,Read,Write等函数?请大家指点,多谢.
|
|
沙发#
发布于:2002-03-18 09:07
微软把内核流包装的严严实实的。
比如数码相机的驱动程序,它做好了流类驱动和应用程序。定义好接口,只让硬件厂商做minidriver。 minidriver在DriverEntry中注册流类mini驱动,调用流类驱动的DriverEntry,此时对设备的控制就会转到类驱动的SRB(Stream Request Block)命令。所以你就看不到AddDevice等,它们相应的变为SRB Command了。 因此,你除非有微软的技术支持,否则还不如自己写驱动。而且微软的驱动写得臃肿的不得了,又难懂! |
|
|
板凳#
发布于:2002-03-18 11:06
用起来确实很郁闷
|
|
地板#
发布于:2002-03-28 21:09
这么巧,我也是做Kernel Streaming Driver 的,你做那一块?
怎么不看看 PcInitializeAdapterDriver()的文档? |
|
地下室#
发布于:2002-03-29 11:01
我也对Kernel Streaming Driver 感兴趣,不过,
还从来没有写过一个。 我看XP DDK中的文档写得不错,还有就是win98的 ddk的文档,也可以参考,重点是ksproxy部分,可以解决你的问题: 小弟我对内核流驱动总有一个困惑,内核流驱动是不是和一般驱动不太一样?怎么见不到AddDevice,Read,Write等函数?请大家指点,多谢. 有机会合作阿:) |
|
5楼#
发布于:2002-04-01 00:13
Kernel streaming 的Driver与普通的WDMDriver有一些区别。请看DDK中的Sample,系统的USBcamd会和厂商的Kernel Streaming driver共同来完成工作(USBintel)。调用完Driverentry以后,系统会把所有的命令通SRB发给Driver,INTELCAM_AdapterRecievePacket会负责处理所有的SRB,它会调用USBCAMD_AdapterReceivePacket做缺省的处理。这是一个总的架构,其他的细节可以Trace source codes得到。
微软用这种架构的好处是,你可以在自己的Driver里面做和设备相关的事情,一些通用的处理都可以交给系统去做。其实这也是一种mini driver的概念。 wolflee@21cn.com http://devicedriver.126.com |
|
|