mars
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3301回复:1

vxd与win32程序通信问题。 急!!!

楼主#
更多 发布于:2001-04-25 13:12
我在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






最新喜欢:

linwnlinwn
mars
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-04-26 16:47
可是在《虚拟设备驱动程序开发起步与进阶》和清华的《WIN9X虚拟设备驱动程序编程指南》中都是这么说的。那请问应该是?
游客

返回顶部