名字不能取太长 2022-08-25 21:38 采纳率: 75%
浏览 81
已结题

自己编写的驱动无法加载

在学习并调试旁视列表的时候发现服务可以创建但是无法启动,如下

img


问题代码块如下

//旁视列表
    PNPAGED_LOOKASIDE_LIST plookaside = NULL;
    plookaside = (PNPAGED_LOOKASIDE_LIST)ExAllocatePoolWithTag(NonPagedPool, sizeof(NPAGED_LOOKASIDE_LIST), 'test');
    memset(plookaside, 0, sizeof(NPAGED_LOOKASIDE_LIST));
    ExInitializeNPagedLookasideList(plookaside, NULL, NULL, POOL_NX_ALLOCATION, 128, 'tag2', 0);
    KdBreakPoint();
    PVOID look = ExAllocateFromNPagedLookasideList(plookaside);
    KdBreakPoint();
    if (look == NULL)
    {
        DbgPrint("allocate fail!\n");
    }
    else
    {
        DbgPrint("allocate mem:%p", look);
    }
    ExFreeToNPagedLookasideList(plookaside, look);
    look = NULL;
    ExDeleteNPagedLookasideList(look);
    DbgPrint("initialize mem!\n");

注释掉PVOID look = ExAllocateFromNPagedLookasideList(plookaside);和ExFreeToNPagedLookasideList(plookaside, look);驱动可以正常启动,请问是为什么?如何解决?

  • 写回答

3条回答 默认 最新

  • 玉古云投 2022-08-25 22:17
    关注

    编译程序的电脑系统,和运行启动驱动的机器,是同一个系统吗?

    评论

报告相同问题?

问题事件

  • 系统已结题 9月2日
  • 创建了问题 8月25日