阅读:1599回复:8
驱动程序里分配的内存,应用程序如何访问?
在驱动程序里用virtualalloc分配了一块内存,并用deviceiocontrol的方式将内存指针传给了应用程序,可在应用程序里访问此内存总出错,何解?
|
|
沙发#
发布于:2005-06-08 09:14
指针是进程相关的。
|
|
|
论坛版主
|
板凳#
发布于:2005-06-08 15:40
驱动所在进程和应用不是一个三
你可以: 1.先预分配一块物理缓冲区,然后驱动和应用分别在自己的进程里用VIRTUALALLOC和VIRTUALCOPY将其映射成自己可访问的缓冲区 2.在应用中分配缓冲区,用DEVICEIOCONTROL传入驱动,驱动直接用即可 |
|
地板#
发布于:2005-06-10 15:35
还可以:在驱动中分配一块缓冲区,然后转换成应用程序所在进程的地址返回给应用,这样在应用中就可以使用这块缓冲区了。
|
|
|
地下室#
发布于:2005-06-11 10:48
Mr. wwei_wang,可以说一下怎样转换成应用程序相关的地址吗?是使用WINCE API函数转换吗?
|
|
论坛版主
|
5楼#
发布于:2005-06-13 16:01
:)
用MapPtrToProcess试试 |
|
6楼#
发布于:2005-06-13 17:19
用VIRTUALALLOC和VIRTUALCOPY将其映射成应用程序的缓冲区
|
|
7楼#
发布于:2005-06-15 09:24
其实你也可以定义一个内存结构,用handle的方式传过去
|
|
论坛版主
|
8楼#
发布于:2005-06-15 15:51
其实你也可以定义一个内存结构,用handle的方式传过去 哟,你娃也消失好久了喔:)))那天WWEI_WANG也浮出水面了,哈哈 |
|