阅读:1511回复:2
如何映射NdisMAllocateShareMemory到Usermode
Dear all:
如何映射NdisMAllocateShareMemory到Usermode, 我用wdm的机制, 诸如: Mdl = IoAllocateMdl(SystemVirtualAddress, NumberOfBytes, FALSE, FALSE, NULL); MmBuildMdlForNonPagedPool(Mdl); MmProbeAndLockPages(Mdl, KernelMode, IoWriteAccess); UserVirtualAddress = MmMapLockedPages(Mdl, UserMode); 到usermode下,返回的UserVirtualAddress不能用。 我估计,该方法在Ndis中行不通。 有人有办法嘛????? Help me. 晤该晒! |
|
最新喜欢:linwn
|
沙发#
发布于:2002-03-15 16:21
修正上篇部分内容:
如何把NdisMAllocateShareMemory分配的虚拟地址映射到Usermod下。 我分配了3M virtual address space.我想在用户模式下直接读取该地址内容。有人有方法吗。我已用wdm的方式试过,不行 sos sos. Thankx again. |
|
|
板凳#
发布于:2002-03-18 14:18
其实你列的方法是可行的。不过,如果分配的内存是分页的,需调用MmProbeAndLockPages, 如果非分页,调用MmBuildMdlForNonPagedPool, 而不是两个都调用。
另外,最后一步MmMapLockedPages必须由应用程序通过IOCTL来调用,因为获得的是该应用程序进程的虚拟地址。 必须注意,相应的释放MmUnmapLocakedPages也必须由同一个应用程序通过IOCTL调用。否则要死机。 Good luck |
|
|