奇妙的BSOD:Bug Check 0xDA

根据Microsoft文档可以知道,页表项被不恰当的方式使用。

笔者在开发开发过程中遇到一个custom报告的一个bug check0xDA的问题,可是在Local无法重现。问题出现在UnMap memory的时候。

问题发生时,如果我们map了一段memory,但是后来并没有访问该地址,在我们unmap该地址时会发生bugcheck 0xDA.

后来给这个问题这个没有找到原因的BSOD patch了一下:

*****************************************************************************************

BYTE g_TempPatchData;

 

LONG MyDriverMapMemory(PMYDRIVER_ADAPTER_CONTEXT hAdapter,
                   IN PHYSICAL_ADDRESS PhysicalAddress,
                   IN OUT PULONG Length,
                   IN PULONG InIoSpace,
                   IN OUT PVOID *VirtualAddress)
{
    PVOID    HwDeviceExtension = hAdapter->MiniportDeviceContext;
    NTSTATUS status;
   
    status = VideoPortMapMemory(HwDeviceExtension,
                                     PhysicalAddress,
                                     Length,
                                     InIoSpace,
                                     VirtualAddress);
    if (NO_ERROR == status)
    {
        BYTE* pData = (BYTE*)(*VirtualAddress);
        g_TempPatchData= *pData;
    }
    return(status);
}

 

*******************************************************************************************

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值