nez
nez
驱动牛犊
驱动牛犊
  • 注册日期2006-07-16
  • 最后登录2013-07-14
  • 粉丝0
  • 关注0
  • 积分195分
  • 威望24点
  • 贡献值1点
  • 好评度23点
  • 原创分0分
  • 专家分0分
阅读:1024回复:0

共享内存 求救

楼主#
更多 发布于:2007-06-21 21:18
向各位大侠请教一个问题,我在应用层CreateFileMapping,在驱动里与之共享,直到ZwMapViewOfSection都没问题,就是通过 *(PUCHAR)uBaseAddress 来访问其中的内容就蓝屏,郁闷了我两天了,我那里错了,谢谢各位了


    RtlInitUnicodeString(&usSharedMemoryObjName, MY_SHARED_OBJ);
    
    InitializeObjectAttributes(
        &objAttrs,
        &usSharedMemoryObjName,
        OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
        (HANDLE)NULL,
        (PSECURITY_DESCRIPTOR)NULL
        );

    NtStatus = ZwOpenSection(
        & pOpencontext->pAdapt->SendMemHandle,
        SECTION_MAP_READ|SECTION_MAP_WRITE,
        &objAttrs
        );

    if(NtStatus != STATUS_SUCCESS)
    {
        DBGPRINT(("ZwOpenSection FAILED %x\n" ,NtStatus));
        return NtStatus;
    }
    
    
    NtStatus = ZwMapViewOfSection(
        pOpencontext->pAdapt->SendMemHandle, //section handle
        NtCurrentProcess(), // current process
        &uBaseAddress, //virtual based address
        0L, //Zerobits
        256,
        &SectionOffset, // optional
        (PSIZE_T)&ViewSize, // How much to map
        ViewShare, // Inherit disposition
        0, //ALlocation Type
        PAGE_READWRITE //protection
        );

    if(NtStatus != STATUS_SUCCESS)
    {
        DBGPRINT(("ZwMapViewOfSection FAILED %x\n" ,NtStatus));
        return NtStatus;
    }

    DBGPRINT(("%x %x %x\n", ViewSize , uBaseAddress , *(PUCHAR)uBaseAddress));

    ZwUnmapViewOfSection(pOpencontext->pAdapt->SendMemHandle,uBaseAddress);
    
    ZwClose(pOpencontext->pAdapt->SendMemHandle);
游客

返回顶部