阅读:1024回复:0
共享内存 求救
向各位大侠请教一个问题,我在应用层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); |
|