sding
驱动牛犊
驱动牛犊
  • 注册日期2007-12-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1345回复:7

这段代码在Upload()中为什么会蓝屏???

楼主#
更多 发布于:2008-06-16 21:22
VOID OnUnload(IN PDRIVER_OBJECT DriverObject)
{

    UNICODE_STRING uniString;
    PDEVICE_OBJECT deviceObject = DriverObject->DeviceObject;
    
    __asm
    {
        push    eax
        mov        eax, CR0
        add        eax, 0FFFEFFFFh
        mov        CR0, eax
        pop        eax
    }
/*
      不断的调试中,发现蓝屏的原因是在这个位置加入的汇编代码,不明白在DriverEntry中这段汇编代码是正常的
      而加在这里却会蓝屏,高人能解释下不???
    InterlockedExchange((PLONG)&SYSTEMSERVICE(ZwQueryDirectoryFile),
            (LONG)OldZwQueryDirectoryFile);
*/
    __asm
    {
        push    eax
        mov        eax, CR0
        or        eax, NOT 0FFFEFFFFh
        mov        CR0, eax
        pop        eax
    }

    RtlInitUnicodeString (&uniString, L"\\DosDevices\\Ding");
    IoDeleteSymbolicLink(&uniString);

    if (deviceObject != NULL)
    {
        IoDeleteDevice(deviceObject);
    }
    DbgPrint("OnUpload\n");
    return;
}
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
沙发#
发布于:2008-06-16 21:40
因为还有调用在使用存在,自然蓝屏~~
请参看以前的类似的文章~
没有战争就没有进步 X3工作组 为您提供最好的军火
sding
驱动牛犊
驱动牛犊
  • 注册日期2007-12-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-06-17 10:28
刚开始学驱动,还是找不到原因,能再指明下不??
microbe
驱动小牛
驱动小牛
  • 注册日期2007-12-10
  • 最后登录2011-01-17
  • 粉丝1
  • 关注0
  • 积分914分
  • 威望420点
  • 贡献值1点
  • 好评度88点
  • 原创分0分
  • 专家分1分
地板#
发布于:2008-06-17 10:35
呵呵,建议非极端情况,不要再代码里嵌汇编,很多时候不用汇编也可以搞定的,,,
Delphips
驱动小牛
驱动小牛
  • 注册日期2003-11-10
  • 最后登录2011-02-21
  • 粉丝1
  • 关注1
  • 积分-363分
  • 威望168点
  • 贡献值0点
  • 好评度151点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-06-17 15:54
64bit编译器好像已经遗弃 asm了
sding
驱动牛犊
驱动牛犊
  • 注册日期2007-12-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-06-18 10:40
问题解决,但不知原因,在DRIVERENTRY中加入汇编正常,不加则蓝屏
在UPLOAD不用加入,驱动也可正常运行,加入则蓝屏
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
6楼#
发布于:2008-06-18 20:44
老v估计理解错了,认为他是在hook ssdt吧?
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2008-06-19 08:48
引用第4楼Delphips于2008-06-17 15:54发表的  :
64bit编译器好像已经遗弃 asm了

64bit照样可以在VC中使用汇编,ASM的好处只有深入使用才能体会.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
游客

返回顶部