阅读:1598回复:6
请教各位大佬驱动装载问题及DMA问题。
请教各位大虾
1。驱动装载问题 我的驱动在系统启动阶段被装载后,马上就被卸栽,我不知为什么?请问可能是什么原因导致的? 我在注册表中\\driver\\builtin\\SMD下的信息已存在,(SMD是我的驱动名),但为何\\driver\\active下无他的信息? 这两个问题有关联吗? 2。DMA问题 是不是必须通过操作DMA的寄存器来实现呢?请问系统提供DMA操作的函数支持吗? |
|
沙发#
发布于:2003-07-24 14:50
不好意思,忘了说明环境
WINCE。NET 4。1 在 WIN2000/PC 的EMLATOR上 我的驱动SMD是空的驱动程序,没有与任何硬件资源I/O关联 [编辑 - 7/24/03 by aetherstone] |
|
板凳#
发布于:2003-07-24 15:16
1,SMD_Init()必须返回一个不为0的值.
driver\\active 下没有,就说明装载不成功. |
|
|
地板#
发布于:2003-07-24 17:56
谢谢你。
我的SMD_Init()是已经返回一个不为0的值 我的SMD_Init()其实什么都没做,仅仅是输出调试信息然后 return TRUE; 我把设备的ICLASS定义为PNP.H文件中的流设备接口,而实际上并不存在这个设备,这样有关系吗?(应该没有吧) --------------------------------------- 设断点跟踪发现SMD_Init()并未被调用,只是进入了DLLMAIN() 两次,一次ATTACH,一次DETTACH [编辑 - 7/24/03 by aetherstone] |
|
地下室#
发布于:2003-07-25 14:10
问题1。驱动被成功加载又卸载是在运行调试版时OUTPUT窗口的输出信息中看到的。
问题2。不好意思,这个问题其实JOYFLY大虾已经为我解答过一次了,是我没说清楚,我是想在驱动中使用DMA来传输数据(CEPC环境),是不是有现成的DMA驱动的函数供其他驱动来调用呢?还是必须只能在自己的驱动中直接操作DMA寄存器来实现DMA。 谢谢,请抽空解答一下, |
|
5楼#
发布于:2003-07-25 14:36
1.SMD_Init()到底有没有被调用到?有的话,返回一个整数(如 0x5432),最好不要只返回1.这个返回值将作为SMD_Open()的第一个参数.
我不知道PNP.H里定义这个IClass有什么用,对一般的驱动,用不着这个,你可以把它去掉试试. 2.希望这篇文章对你有用: http://msdn.microsoft.com/library/en-us/dncenet/html/builddmadriver.asp?frame=true [编辑 - 7/25/03 by joyfly] |
|
|
6楼#
发布于:2003-07-28 10:27
谢谢你!
|
|