sxzllp
驱动牛犊
驱动牛犊
  • 注册日期2004-12-02
  • 最后登录2004-12-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1568回复:4

驱动的卸载问题

楼主#
更多 发布于:2004-12-02 11:58
各位高手,我用DDK做了一个简单的WDM驱动程序.SYS,用DRIVE MONITOR加载,收到加载成功的调试信息, 信息是在程序中用DBGPRINT写的,但在卸载的时候,却不成功,而且连调试信息也收不到,请看如下卸载代码:
VOID DriverUnload (IN PDRIVER_OBJECT pDriverObject)
{
UNICODE_STRING nameString;

 RemoveMyInt();
 RtlInitUnicodeString( &nameString, L"\\??\\WSSINT" );

 IoDeleteSymbolicLink(&nameString);
IoDeleteDevice(pDriverObject->DeviceObject);
 DbgPrint("out ok\n");//我的调试信息

return;
}
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-02 12:36
各位高手,我用DDK做了一个简单的WDM驱动程序.SYS,用DRIVE MONITOR加载,收到加载成功的调试信息, 信息是在程序中用DBGPRINT写的,但在卸载的时候,却不成功,而且连调试信息也收不到,请看如下卸载代码:
VOID DriverUnload (IN PDRIVER_OBJECT pDriverObject)
{
UNICODE_STRING nameString;

 RemoveMyInt();
 RtlInitUnicodeString( &nameString, L"\??\WSSINT" );

 IoDeleteSymbolicLink(&nameString);
IoDeleteDevice(pDriverObject->DeviceObject);
 DbgPrint("out okn");//我的调试信息

return;
}


用DRIVE MONITOR加载
那你怎么卸载的呢,DRIVE MONITOR好像没提供卸载功能,
当然你也看不到DbgPrint("out okn");//我的调试信息
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
sxzllp
驱动牛犊
驱动牛犊
  • 注册日期2004-12-02
  • 最后登录2004-12-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-02 13:33
不好意思,你的答案我还不理解. DRIVER MONITOR应该是可以卸载的呀/1
  
sxzllp
驱动牛犊
驱动牛犊
  • 注册日期2004-12-02
  • 最后登录2004-12-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-02 14:36
那如果确保 driveunload这个函数被调用呢,我现编程或用工具只能实现DELETE这个服务,使它的START
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-02 21:13
各位高手,我用DDK做了一个简单的WDM驱动程序.SYS,用DRIVE MONITOR加载,收到加载成功的调试信息, 信息是在程序中用DBGPRINT写的,但在卸载的时候,却不成功,而且连调试信息也收不到,请看如下卸载代码:
VOID DriverUnload (IN PDRIVER_OBJECT pDriverObject)
{
UNICODE_STRING nameString;

 RemoveMyInt();
 RtlInitUnicodeString( &nameString, L"\??\WSSINT" );

 IoDeleteSymbolicLink(&nameString);
IoDeleteDevice(pDriverObject->DeviceObject);
 DbgPrint("out okn");//我的调试信息

return;
}

从设备管理中禁用驱动看看有没有调用,你需要确定你的驱动已经真正卸载了,如果没有当然不会调用Unload了
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部