zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1688回复:17

驱动程序一安装,机子就重启动了?怎么搞的????

楼主#
更多 发布于:2002-05-21 19:19
我在w2000中,用DriverStudio编写一WDM驱动程序? 其中,有WMI功能部分.编译通过之后,一安装,机器就自动重启动了,重启动之后,看设备的驱动程序没有安装上,还是原来的.不知为什么??希望高手指点一下?谢谢!!!!!!!
nice
sprite_sy
驱动牛犊
驱动牛犊
  • 注册日期2002-05-20
  • 最后登录2002-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-05-21 21:24
看看DriverEntry
还是AddDevice有问题

  还有可以用softie调一下 看看哪里的问题
 还有重启之前应该有蓝屏吧
 看一下错误代码 也许有用
zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-05-22 10:23
DriverEntry 和 AddDevice 都是DriverStudio自动生成的,我没改过,也会出错吗?
启动之前,没有任何提示!
我不太会用softice调试,只能试试!
谢谢!你的回答!
nice
zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-05-22 15:50
我更新驱动程序的时候softice自动弹出:
提示:  Entering Abc1Device::~Abc1Device()(destructor)
       Assertion Failed :(index>=0)&&(index<=m_MaxInserted)
       SourceFile:c:propramefile\\...\\include\\karray.h
       NTICE: Unload32 MOD=ABC1
       NTICE:Load32 START=bC526000...............  
  其中,第2,3行是兰色出错行!!!!!!
不知楼上的这位高手能否再给指点一二.我将不胜感激!!!!!!!!
nice
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-05-22 15:54
Assertion Failed index>=0)&&(index<=m_MaxInserted)

主要是这句话,很明显index越界了吧
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-05-22 20:18
谢谢!!
但是,我用driverstudio 开发,我得驱动里面根本就没有
  index>=0)&&(index<=m_MaxInserted) 或类似的语句,变量.
有没有可能是什么资源释放的问题????index 是不是openhandle的计数,或者是什么类似的东西!!!!!!!
问题好像出现在Unload阶段!!!!!!!!!!
急切盼望高手们指点....谢谢!!!
nice
zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-05-23 16:32
问题还没解决,请高手们帮帮忙!!!!!!!急着那!!
在这先谢谢大家了!!!!!!
nice
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-05-23 16:50
你的程序没用,但是你调用的ds的库可能用了。

这不好说是什么问题
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
yxjoyce
驱动牛犊
驱动牛犊
  • 注册日期2002-04-15
  • 最后登录2003-04-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-05-24 10:14
我也碰到过一安装就重起的问题,不过那是我的inf文件写的有问题:)
cyran
驱动中牛
驱动中牛
  • 注册日期2001-09-28
  • 最后登录2009-02-24
  • 粉丝0
  • 关注0
  • 积分101分
  • 威望20点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-05-24 15:54
楼上的兄弟说是你的.inf 文件的问题!能不能详细讲讲!怎么解决的!

我的驱动也出现了安装就重启或死机的毛病!
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-05-25 09:43
引用:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       Entering Abc1Device::~Abc1Device()(destructor)
       Assertion Failed :(index>=0)&&(index<=m_MaxInserted)
       SourceFile:c:propramefile\\...\\include\\karray.h
       NTICE: Unload32 MOD=ABC1
       NTICE:Load32 START=bC526000...............  
  其中,第2,3行是兰色出错行!!!!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
从以上信息看,第一行应该是你的驱动自己打出来的信息,表明驱动未安装成功。第二行和第三行说明一个ASSERT error,那是你包含的一个头文件,用VC搜索到那个语句所在的函数,再找到调用该函数的你驱动里的函数,就可以有针对性的解决。
    从以上现象看我估计应该是在你的设备初始化过程中出错,并且及有可能破坏了系统的某个进程,故导致机器重启,请仔细检查你所用的变量和指针,以及涉及到写内存的地方。
zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-05-25 12:41
非常感谢各位的回答!
bingjie 我的问题是出现在UNload阶段,因为,我做了实验,从设备属性页停用设备!!SofeIce就出现这个问题了!!!!!而只安装的时候就不会出现这样的问题????
nice
zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-05-27 15:40
unload 阶段怎么会出现这种情况那???????那位能帮帮我那?/???
急着那!!!!问题还没有解决!!
其他问题没有了,就是不能卸载!!!
nice
zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-05-28 21:32
unload 阶段怎么会出现这种情况那???????那位能帮帮我那?/???
急着那!!!!问题还没有解决!!
其他问题没有了,就是不能卸载!!!
劳驾!劳驾!多谢多谢!!
nice
yxjoyce
驱动牛犊
驱动牛犊
  • 注册日期2002-04-15
  • 最后登录2003-04-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-05-31 15:48
把你的unload代码和处理IRP_MJ_PNP的代码贴上来看看,我最近刚刚也遇到之类的问题并且解决了一把。
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-05-31 16:44
Unload函数,这种重启的问题一般都是由于没有加卸载保护造成的,要注意两个问题:1。在卸载前应该所有IRP都已处理完成;2。卸载的过程中再有IRP进来则应该返回失败。
zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-06-02 11:20
我的UNload是ds自动生成,我跟本没有重载,!!!
我得OnRemoveDevice函数如下:
NTSTATUS Abc1Device::OnRemoveDevice(KIrp I)
{
t << \"Entering Abc1Device::OnRemoveDevice\\n\"<<I<<EOL;
//copy the following from Close(KIrp)
//ADD_BEGIN
if(m_pUserBuffer!=NULL)
{
t<<\"free m_pUserBuffer\"<<I<<EOL;
ExFreePool(m_pUserBuffer);
m_pUserBuffer=NULL;      
                      m_SizeOfUserBuffer=0;    
            }
//ADD_END

// TODO: Add device-specific code to remove your device  
//add wmi 2002.5.17
if ( m_Wmi != NULL )
{
  t<<\"entering m_Wmi!=NULL \"<<I<<EOL;
m_Wmi->Deregister();
m_Wmi->SetMethods(0,MethodArray);
}
 
//add end
return STATUS_SUCCESS;

// The following macro simply allows compilation
// at Warning Level 4
// If you reference this parameter in the
//function simply remove the macro.
// UNREFERENCED_PARAMETER(I);
}
nice
yxjoyce
驱动牛犊
驱动牛犊
  • 注册日期2002-04-15
  • 最后登录2003-04-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-06-05 10:14
看不出什么问题,sorry的很!
:)))
游客

返回顶部