Wdf驱动蓝屏分析之一: 开启Verifier后蓝屏

/*****************************************************************************
       代码架构
 *****************************************************************************/
 1、 用户通过deviceuicontrol发送请求到驱动
 2、 驱动收到用户的request(WDFREQUEST)后, 为该请求设置取消例程,同时创建子请求subrequest,为子请求设置完成例程
 3、 驱动的requst的取消例程中,首先结束subrequest,然后以STATUS_CANCELLED状态结束主request
 4、 在subrequest的完成例程中,我代码大致如下
     VOID EvtXFerCompletionRoutine (...)
     {
    // 此处在开启vierifier后,系统睡眠,触发int3中断
   if ( WdfRequestUnmarkCancelable(pParentRequest) != STATUS_CANCELLED )    
         {
             完成主请求 request
         }
   
         // reuse subrequest
     }


 /*****************************************************************************
       问题出现
 *****************************************************************************/
 代码架构描述清楚了,出现步骤如下
 1、 开启程序,使数据开始传输,意味着源源不断的request发送给驱动,驱动又源源不断的产生subrequest
 2、 此时,点击使设备睡眠(非长时间不操作后设备休眠)
 3、 系统蓝屏

 /**************************************************
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值