Iamme
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2005-10-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2002-02-01 17:59
我是说你没有错
我真丢人
:(
Go,go ahead
Snare
驱动小牛
驱动小牛
  • 注册日期2002-01-31
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2002-02-01 19:10
你APP和VXD中inbuf的结构一样么?
我认为是这个原因
我就是我,没什么可说的。
lvwj
驱动老牛
驱动老牛
  • 注册日期2001-08-21
  • 最后登录2021-01-31
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望181点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
  • 社区居民
22楼#
发布于:2002-02-01 20:03
你的设备驱动程序什么情况下返回失败(返回 1)?
如果你做了参数校验,snare 的推断就有道理。vxd 中结构通常是按字节对齐,而要想 32 位应用程序按字节对齐,需要加一句
 #pragma pack(2)。

还有,debugview 是个很好的系统调试信息输出窗口,才 200k 左右,很好用,站上好像就有,为什么不下一个?
www.bjjcz.com
chenyz
驱动牛犊
驱动牛犊
  • 注册日期2001-10-24
  • 最后登录2002-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2002-02-02 10:24
这是书上的例子,在我这没一点问题,把你的邮箱告诉我,我把我的发给你,或者你把你的发到chen_yu_zhong@263.net,对的和错的一比较,很快就能发现错误的所在。
不过我大约5号就走人了,如果你在这之后看见我的帖子的话,那就等过完年再说吧。
chenyz
驱动牛犊
驱动牛犊
  • 注册日期2001-10-24
  • 最后登录2002-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2002-02-02 10:56
本站帖子可以粘贴附件
那我就直接把我的贴上来了,jiaxu你也把你的贴上来吧。
jiaxu
驱动牛犊
驱动牛犊
  • 注册日期2002-01-15
  • 最后登录2003-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2002-02-04 10:07
你APP和VXD中inbuf的结构一样么?
我认为是这个原因


以前的结构是一样的,后来在驱动里面,我索性根本不处理InBuf中的数据,直接返回一个OutBuf。

顺便问一下,CreateFile()中为什嬷要用Create_new,这样会导致我的工作目录中不能有VXD,否则就有错。而且,我好像必须指明路径(\\\\\\\\.\\\\d:\\\\driverdevelop\\\\apptovxd\\\\apptovxd.vxd),不能直接用默认的(\\\\\\\\.\\\\apptovxd.vxd),否则,就会有问题,error = 2。
珈旭
jiaxu
驱动牛犊
驱动牛犊
  • 注册日期2002-01-15
  • 最后登录2003-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2002-02-04 10:24
你的设备驱动程序什么情况下返回失败(返回 1)?
如果你做了参数校验,snare 的推断就有道理。vxd 中结构通常是按字节对齐,而要想 32 位应用程序按字节对齐,需要加一句
 #pragma pack(2)。

还有,debugview 是个很好的系统调试信息输出窗口,才 200k 左右,很好用,站上好像就有,为什么不下一个?



VToolsD中本来有一个debugmonitor,可是打开default通道,无法捕捉到dout输出,也就没有用它了。
珈旭
jiaxu
驱动牛犊
驱动牛犊
  • 注册日期2002-01-15
  • 最后登录2003-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2002-02-04 10:30
这是书上的例子,在我这没一点问题,把你的邮箱告诉我,我把我的发给你,或者你把你的发到chen_yu_zhong@263.net,对的和错的一比较,很快就能发现错误的所在。
不过我大约5号就走人了,如果你在这之后看见我的帖子的话,那就等过完年再说吧。


我把我的程序发给你,有时间,麻烦你看一下了。
我想,除了CreateFile()中的VXD加载路径不同外,其他都一样。
谢谢。
珈旭
Snare
驱动小牛
驱动小牛
  • 注册日期2002-01-31
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2002-02-04 11:23
找不出问题
因为你们的程序在我这里都能通过,没有任何问题。
而且jiaxu的要好一些,因为你在
if (!DeviceIoControl(hDevice,ADDXY,pxy,0,&z,sizeof(int),0,NULL))
里为输出buf指定了长度。(但这对于本程序无影响)

还有在我这里,无论相对路径还是绝对路径都可以。
但是如果是绝对路径的话,单个目录名要不超过8个字符
我就是我,没什么可说的。
chenyz
驱动牛犊
驱动牛犊
  • 注册日期2001-10-24
  • 最后登录2002-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2002-02-04 12:11
jiaxu,你的程序在我这里完全没有问题,能得到正确的结果,我除了把路径改成\\\\\\\\.\\\\d:\\\\driver~1\\\\apptovxd\\\\apptovxd.vxd外,没对你的程序做任何修改,正如楼上所说的,绝对路径名不能超过8字符,用你原来的路径我这里就不能打开VXD。而且我用\\\\\\\\.\\\\apptovxd.vxd这个路径也是可以的。
实在想不出你那里到底是什么问题。
另外,VTOOLSD自带的debugmonitor,是可以捕捉到dout输出的,例如:
dout<<\"In VXD\"<<endl;
执行这句程序后debugmonitor就会显示In VXD。
jiaxu
驱动牛犊
驱动牛犊
  • 注册日期2002-01-15
  • 最后登录2003-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2002-02-04 13:50
谢谢各位。知道正确就行了。
再次说声谢谢。
珈旭
上一页 下一页
游客

返回顶部