内核驱动触发蓝屏KERNEL_SECURITY_CHECK_FAILURE

在调试旁视列表时候触发了蓝屏KERNEL_SECURITY_CHECK_FAILURE

//旁视列表
    NPAGED_LOOKASIDE_LIST lookaside;
    memset(&lookaside, 0, sizeof(lookaside));
    ExInitializeNPagedLookasideList(&lookaside, NULL, NULL, 0, 10 * LOOKASIDE_MINIMUM_BLOCK_SIZE, 'tag2', 0);
    KdBreakPoint();
    memptr = ExAllocateFromNPagedLookasideList(&lookaside);
    if (memptr == NULL)
    {
        DbgPrint("allocate fail!\n");
    }
    else
    {
        DbgPrint("allocate mem:%p", memptr);
    }
    ExFreeToNPagedLookasideList(&lookaside, memptr);
    memptr = NULL;
    ExDeleteNPagedLookasideList(&lookaside);
    DbgPrint("initialize mem!\n");

其中问题疑似出现在memptr = ExAllocateFromNPagedLookasideList(&lookaside);
请问这是为什么?如何解决?

蓝屏时,十六进制错误代码是多少,根据错误码找找原因

你申请的内存释放的时候释放有问题

img


看黄色标记,你调用ExAllocateFromNPagedLookasideList(&lookaside);申请内存,释放的时候调用 ExFreeToNPagedLookasideList这个函数第一个参数应该传入ExAllocateFromNPagedLookasideList的返回值也就是memptr 。
你这是释放内存释放错了触发coredump了算是