阅读:1657回复:3
DeviceIoControl()数据传输问题?
兄弟,现在想通过DeviceIoControl(),将我在vxd中分配的中断可访问的内存地址传给win32应用程序,其中在win32中的程序为:
在.h文件中 typedef struct _MapDevRequest { DWORD mdr_SizeInBytes; PVOID mdr_LinearAddress; WORD mdr_Status; } MAPDEVREQUEST,*PMAPDEVREQUEST; 在.cpp文件中: MAPDEVREQUEST req; DeviceIoControl(hDevice,PASS_ADDR,0,0,&req,0,0,NULL) 在vxd中: PMAPDEVREQUEST pReq; pReq->mdr_LinearAddress=LineBufAddr; pReq->mdr_SizeInBytes=nPages*4*1024; inBuf[0]=pReq; *(PVOID *)pDIOCParams->dioc_OutBuf=inBuf; 在win32中得到的地址 req->mdr_LinearAddress始终为0xcccccccc不知为何? 望求高手指教? |
|
最新喜欢:chili |
沙发#
发布于:2002-05-08 11:29
mdr_SizeInBytes可以看到吗?
|
|
板凳#
发布于:2002-05-08 13:25
你语法不太清楚,我认为应这样:
其中在win32中的程序为: 在.cpp文件中: PMAPDEVREQUEST pReqW32=NULL; DWORD InfoBytes; DeviceIoControl(hDevice,PASS_ADDR,0,0,&pReqW32,0,&InfoBytes,NULL) 在vxd中: PMAPDEVREQUEST pReq; //为pReg分配内存,... pReq->mdr_LinearAddress=LineBufAddr; pReq->mdr_SizeInBytes=nPages*4*1024; pDIOCParams->dioc_OutBuf=pReq; 你这样试一下吧! |
|
地板#
发布于:2002-05-09 10:47
谢谢斑竹的帮助!!
|
|