阅读:1953回复:3
如何用DeviceIOControl(...)读取并口信息
我要直接用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(...)的参数没有用错啊! 先谢谢大家的帮助! :( |
|
最新喜欢:![]() |
沙发#
发布于:2003-05-16 15:20
gz
|
|
板凳#
发布于:2003-05-19 19:52
我认为大概是系统中并口的驱动程序并没有定义一个IOCTL_IEEE1284_GET_MODE 的dispach函数,如果你用
ReadFile(...)或WriteFile(...)估计就不会有问题, 因为这两个函数是api中定义的,系统中的并口驱动一定 会定义这两个函数的响应函数,就是那个 “ ->MajorFunction[IRP_MJ_WRITE]=XXXX1() ->MajorFunction[IRP_MJ_READ]=XXXX2() ” |
|
地板#
发布于:2003-05-20 10:20
我已检查了DDK2000中提供的并口驱动程序源代码,该控制码确实定义了的,相应的处理函数也定义了.我现在怀疑不能在用户模式发该IO请求. :(
|
|