amei
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2006-11-10
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:2214回复:11

关于outpd 和inpd的问题

楼主#
更多 发布于:2002-05-29 14:33
我用_outpd向70端口输出一个双字,然后用_inpd再把那个双字读回来传给应用程序,可是没有任何值被传回来。我感觉 outpd和inpd 根本都没有工作,请各位指教
Struct xy
{ unsigned long x;};
应用程序:
void main()
{
HANDLE hDevice;
xy *pxy;//
unsigned long z=0;//接受vxd传回来的值

hDevice=CreateFile (\"\\\\\\\\.\\\\TEST.VXD\",0,0,0,CREATE_NEW,
                    FILE_FLAG_DELETE_ON_CLOSE,0);
if(hDevice==INVALID_HANDLE_VALUE)
{
   fprintf(stderr,\"can nor load VXD,error=%08ld\\n\"
           GetLastError());
   exit(1);
}
pxy=new xy[1];//
pxy[1].x=0;//

if(!DeviceIoControl(hDevice,ADDXY,&pxy[1],0,&z,0,0,0))
{
  fprintf(stderr,\"fail,error=%08ld\\n\",GetLastError());
exit(1);
}
printf(\"%x\\n\",z);//总是传回z的初始值0?????
CloseHandle(hDevice);
}
vxd程序:
DWORD TestDevice::OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams)
{  xy *pxy;
switch(pDIOCParams->dioc_IOCtlCode)
{case DIOC_OPEN: return 0;
 case DIOC_CLOSEHANDLE:
return DEVIOCTL_NOERROR;
 case ADDXY:
{
pxy=(xy*)pDIOCParams->dioc_InBuf;//
                    _outpd(0x70,0x00000001);//
pxy->x=_inpd(0x70);//
*(unsigned long*)pDIOCParams->dioc_OutBuf=pxy->x;//
  return 0;}
 default :return -1;
}
}



[编辑 -  5/29/02 by  amei]

[编辑 -  5/29/02 by  amei]
amei
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2006-11-10
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-03 08:09
我试过其他的端口了,我用outpd操作之后再用inpd 想取回原来的操作数,但是得不到。当我用70端口是返回的是ffffffff用20端口是返回的是ffff0000.我往70端口输入数据后再开机bios说日期和时间有问题让我修改,我想这是不是说明我已经修改了79端口呢,但为什么我用inpd取不回我修改的值呢?请各位指教!
jep
jep
驱动小牛
驱动小牛
  • 注册日期2001-12-26
  • 最后登录2017-08-12
  • 粉丝0
  • 关注0
  • 积分98分
  • 威望30点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-05-30 11:08
70端口是受操作系统保护的吧,你应该把它接管过来,这比较危险,看了你的VXD,你换一个口地址就应该可以了。 :)
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-05-29 16:07
if(!DeviceIoControl(hDevice,ADDXY,&pxy[0],4,&z,4,&Bytes,0))
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-05-29 15:57
敲漏了一个字是“DriverStudio我不熟悉”
我的E-Mail是mfczmh@sina.com.cn
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-05-29 15:56
敲漏了一个字是“DriverStudio我不熟悉”
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
amei
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2006-11-10
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-05-29 15:41
是在98下.谢谢了.
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-05-29 15:33
你确保OnW32DeviceIoControl已经响应了
还有,你是在Win9X下吗?
如果可以我可帮你看看,最好是DDK开发的,因为DriverStudio我熟悉(昨天刚装了个2.01版)
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
amei
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2006-11-10
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-05-29 15:20
是动态加载的,win32程序运行的很正常.
哎,就是搞不懂,错在哪里,已经一下午了,郁闷!!!
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-05-29 15:13
你上面的代码看你是使用动态加载vxd的,不只你的def文件是否正确,
你的Win32程序成功运行到那里了。
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
amei
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2006-11-10
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-05-29 14:46
1、pxy[1].x=0; 错误,应该是pxy[0].x=0;

2、DeviceIoControl的第四个参数应该是sizeof(pxy[0])


做了改动仍无效??
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-05-29 14:40
1、pxy[1].x=0; 错误,应该是pxy[0].x=0;

2、DeviceIoControl的第四个参数应该是sizeof(pxy[0])
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部