阅读:1199回复:5
请教关于应用程序和VXD通信的问题!!!
刚学做了一个VXD,VXD通过OnW32DeviceIoControl消息函数可以获得应用程序传递过来的主窗口指针,现在我想把应用程序中的一个LPBYTE指针(开辟了很大一块内存)传递过来并读取数据,试了一下总是死机,请教各位大侠应该怎么做才行?
|
|
|
沙发#
发布于:2004-01-08 16:04
应用程序和驱动程序共享缓冲区是吧?可以的,好像应该驱动程序开辟缓冲区,然后指针送给应用程序吧。时间太久记不清了
|
|
|
板凳#
发布于:2004-01-13 10:35
大侠说的对,是VXD程序开辟缓冲区再把指针传给应用程序,但我试了试用的是_PageAllocate函数开辟缓冲区,得到一个物理地址和线性地址,也不知道对不对,我然后在VXD程序里读写线性地址指向的内存,但是不行,物理地址也不行。
是不是_PageAllocate函数用的不对,它有十个参数,最后两个我没搞明白。 如果大侠还记得的话,请指点一二。 |
|
|
地板#
发布于:2004-01-13 11:31
在WIN9X下没必要用驱动,可以直接在任何时候进RING0获得任何信息。。。。。
|
|
|
地下室#
发布于:2004-01-14 10:12
大侠说的对,是VXD程序开辟缓冲区再把指针传给应用程序,但我试了试用的是_PageAllocate函数开辟缓冲区,得到一个物理地址和线性地址,也不知道对不对,我然后在VXD程序里读写线性地址指向的内存,但是不行,物理地址也不行。 说实话我对物理地址线性地址现在还是一头雾水呢 我的方法就是,VXD驱动程序建立一个全局数组,然后将指针传给应用程序,算是比较苯的方法了。这个缓冲区上下就可以供用了 |
|
|
5楼#
发布于:2004-01-16 10:42
谢谢楼上的,我再试试。
还有楼上的楼上的大侠说的我还不太明白啊~~~~~~~~~~~ |
|
|