brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3261回复:31

WIN2000不能正常关机的问题(关于DS下的DMA)

楼主#
更多 发布于:2002-10-21 13:20
我在2000下用DS作PCI卡驱动,作基于通用缓冲区的连续大数据量DMA,驱动和应用层利用事件同步。
结束程序后不能正常关机,死在关机界面的“正在保存设置……”谁能告诉我为什么,怎么办?

[编辑 -  11/4/02 by  brucezh]
打一枪……换个地方……再打一枪……
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-10-22 19:15
申请的DMA通道没有释放?
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-23 11:50
申请的DMA通道没有释放?

我用DS作的,在自动生成的代码框架中**Dvevice::Invalidate()函数中注释:不必调用KDmaAdapter对象的Invalidate()函数。
如果要释放,应该在哪里释放呢?在OnStopDevice()还是在析构函数中?
而且我如果开机后没有执行设备的传输操作,那就能正常关机,否则就关机不正常。资源申请应该是一进系统就申请吧?
打一枪……换个地方……再打一枪……
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-24 11:54
有谁能帮我?
打一枪……换个地方……再打一枪……
LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-24 12:38
当时能不能调出SOFTICE?

如果可以,用STACK命令查看一下。(当然先要加载符号表,否则会是汇编,看不出来。)

也可以在驱动的析构函数中加入断点,跟踪。(一定要跟到DS的库里,分析它的库里的函数结构。)
穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-24 15:36
当时能不能调出SOFTICE?

如果可以,用STACK命令查看一下。(当然先要加载符号表,否则会是汇编,看不出来。)
 

符号表如何加载?
打一枪……换个地方……再打一枪……
SWLEO
驱动牛犊
驱动牛犊
  • 注册日期2002-10-12
  • 最后登录2003-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-24 22:00
 
多谢指点
SWLEO
驱动牛犊
驱动牛犊
  • 注册日期2002-10-12
  • 最后登录2003-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-10-24 22:03
多谢指点
SWLEO
驱动牛犊
驱动牛犊
  • 注册日期2002-10-12
  • 最后登录2003-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-10-24 22:04
怎么换头像和加签名档,谢谢
多谢指点
LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-10-25 00:56
[quote]当时能不能调出SOFTICE?

如果可以,用STACK命令查看一下。(当然先要加载符号表,否则会是汇编,看不出来。)
 

符号表如何加载? [/quote]

使用SOFT的LOAD加载*.nms文件或直接加载驱动程序。
穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-10-25 08:50
[quote][quote]当时能不能调出SOFTICE?

如果可以,用STACK命令查看一下。(当然先要加载符号表,否则会是汇编,看不出来。)
 

符号表如何加载? [/quote]

使用SOFT的LOAD加载*.nms文件或直接加载驱动程序。
 [/quote]
原来那个叫作符号表 :D
打一枪……换个地方……再打一枪……
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-10-25 09:53
事件close了没有 :D
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-10-25 10:27
事件close了没有 :D

这个很有必要吗?
打一枪……换个地方……再打一枪……
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-10-25 10:33
事件close了没有 :D

在应用程序中倒是ResetEvent()了
但在驱动中没有。我试试看先
打一枪……换个地方……再打一枪……
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-10-25 11:34
[quote]事件close了没有 :D

在应用程序中倒是ResetEvent()了
但在驱动中没有。我试试看先 [/quote]
更混乱了。
打一枪……换个地方……再打一枪……
LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-10-26 19:12
[quote]事件close了没有 :D

在应用程序中倒是ResetEvent()了
但在驱动中没有。我试试看先 [/quote]

如果驱动中没有用事件那肯定和事件无关。

穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-10-28 09:11
[quote][quote]事件close了没有 :D

在应用程序中倒是ResetEvent()了
但在驱动中没有。我试试看先 [/quote]

如果驱动中没有用事件那肯定和事件无关。

 [/quote]
用了,但好像没使用KDmaAdapter和KDmaTransfer进行DMA传输以前没有这现象。
打一枪……换个地方……再打一枪……
LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-10-28 20:09
[quote][quote][quote]事件close了没有 :D

在应用程序中倒是ResetEvent()了
但在驱动中没有。我试试看先 [/quote]

如果驱动中没有用事件那肯定和事件无关。

 [/quote]
用了,但好像没使用KDmaAdapter和KDmaTransfer进行DMA传输以前没有这现象。 [/quote]

那就应该检查DMA。

穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
brucezh
驱动老牛
驱动老牛
  • 注册日期2002-01-30
  • 最后登录2007-02-01
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-10-29 09:51
[quote][quote][quote][quote]事件close了没有 :D

在应用程序中倒是ResetEvent()了
但在驱动中没有。我试试看先 [/quote]

如果驱动中没有用事件那肯定和事件无关。

 [/quote]
用了,但好像没使用KDmaAdapter和KDmaTransfer进行DMA传输以前没有这现象。 [/quote]

那就应该检查DMA。

 [/quote]
这我知道,但我觉得我的代码跟帮助文件中的描述没有什么冲突阿。
而且向导生成的代码说明中明确说不需要释放KDmaAdapter对象的资源。难道DMA过程中也有什么影响吗?
打一枪……换个地方……再打一枪……
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-10-29 10:25
ds既然封装了dma
肯定帮你释放了

所以还是应该检查你自己申请的资源
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
上一页
游客

返回顶部