阅读:3375回复:1
vxd与win32程序通信问题。 急!!!
我在VXD中用下面函数进行测试。将中data的数送到win32程序.
DWORD OneDevice::OnW32DeviceIoControl(PIOCTLPARAMS p) { int i; int size; for(i=1;i<15;i++) data=i; //test com switch(p->dioc_IOCtlCode) { case DIOC_OPEN: break; case DIOC_CLOSEHANDLE:break; case 111: size=p->dioc_cbOutBuf; memcpy(p->dioc_OutBuf,data,15); break; } return 0; 在程序中相应代码如下: void CTestvxdView::OnFileOpen() { // TODO: Add your command handler code here int a=15; BYTE datl[15]; HANDLE hDEVICE; hDEVICE=CreateFile("one.vxd",0,0,0,OPEN_EXISTING,FILE_FLAG_DELETE_ON_CLOSE,0); if(hDEVICE==INVALID_HANDLE_VALUE) { exit(1); } DeviceIoControl(hDEVICE,111,NULL,0,(LPVOID)datl,a,NULL,NULL); DWORD S=GetLastError(); CloseHandle(hDEVICE); } 经过调试后,确认vxd已经打开并加载,但是相互之间并没有传出数据。其中s=87,是参数错误。现不知问题在何处。请高手指点。不胜感激! mars888@263.net |
|
最新喜欢:linwn |
沙发#
发布于:2001-04-26 16:47
可是在《虚拟设备驱动程序开发起步与进阶》和清华的《WIN9X虚拟设备驱动程序编程指南》中都是这么说的。那请问应该是?
|
|