fangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-03-26
  • 最后登录2004-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1953回复:3

如何用DeviceIOControl(...)读取并口信息

楼主#
更多 发布于:2003-05-16 14:33
我要直接用WIN32中的函数通过Windows2000提供的并口驱动程序操作专用并口设备.
在用CreateFile(\"\\\\\\\\.\\\\LPT1\",...)成功获得句柄m_hPPort(0x00000064)后,我用
DeviceIoControl(m_hPPort,IOCTL_IEEE1284_GET_MODE,NULL,0,&OutBuffer,nOutBufferSize,&BytesReturned,NULL);读取并口工作模式,但总是失败,返回值为0.
其中,PARCLASS_NEGOTIATION_MASK OutBuffer;
nOutBufferSize = sizeof(PARCLASS_NEGOTIATION_MASK);
紧跟其后的GetLastErro()返回值\'1\',表明是\"Incorrect function\"错误.我不明白这是什么意思.DeviceIOControl(...)的参数没有用错啊!
先谢谢大家的帮助! :(

最新喜欢:

wm_createwm_cre...
spin
驱动小牛
驱动小牛
  • 注册日期2001-04-17
  • 最后登录2015-10-27
  • 粉丝1
  • 关注0
  • 积分46分
  • 威望354点
  • 贡献值0点
  • 好评度41点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-16 15:20
gz
xef2000
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2010-11-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-19 19:52
我认为大概是系统中并口的驱动程序并没有定义一个IOCTL_IEEE1284_GET_MODE 的dispach函数,如果你用
ReadFile(...)或WriteFile(...)估计就不会有问题,
因为这两个函数是api中定义的,系统中的并口驱动一定
会定义这两个函数的响应函数,就是那个

->MajorFunction[IRP_MJ_WRITE]=XXXX1()
->MajorFunction[IRP_MJ_READ]=XXXX2()  ”

fangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-03-26
  • 最后登录2004-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-20 10:20
我已检查了DDK2000中提供的并口驱动程序源代码,该控制码确实定义了的,相应的处理函数也定义了.我现在怀疑不能在用户模式发该IO请求. :(
游客

返回顶部