阅读:1881回复:6
DeviceioControl问题。
我用DeviceIoControl发送命令返回0,出错为参数不对,请问具体是什么参数有错?
|
|
|
沙发#
发布于:2001-11-27 09:50
把你的代码贴出来看看 |
|
|
板凳#
发布于:2001-12-05 12:30
我也遇到了这个问题,是一个PCI的PNP的驱动,好象是没有能够得到
系统分配的资源的信息,你的解决了吗? |
|
|
地板#
发布于:2001-12-08 12:02
GENPORT_WRITE_INPUT InputBuffer;
hndFile = CreateFile(\"\\\\\\\\.\\\\GpdDev\", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (hndFile == INVALID_HANDLE_VALUE) { AfxMessageBox(\"Unable to open the device.\"); exit(1); } IoctlCode = IOCTL_GPD_WRITE_PORT_USHORT; InputBuffer.ShortData =0xff;// (USHORT)DataValue; DataLength = offsetof(GENPORT_WRITE_INPUT, ShortData) + sizeof(InputBuffer.ShortData); IoctlResult = DeviceIoControl(hndFile,IoctlCode, &InputBuffer, DataLength, NULL, 0, &ReturnedLength, NULL ); 代码如上,IoctlResult总是为0!好象IoctlCode是一个很大的负数。 |
|
|
地下室#
发布于:2001-12-10 15:01
DeviceIoControl的问题解决一些了,是驱动的问题,不是APP的问题,使用超限的硬件地址偏移量,导致DeviceIoControl的return为0
|
|
|
5楼#
发布于:2001-12-10 15:11
你用的是ddk里的GPDWRITE.C地例子么?
看着应该是没什么问题呀. 你用GetLastError得到什么结果 |
|
|
6楼#
发布于:2001-12-11 17:30
问题解决了,是驱动的基地址偏移量的计算方法的错误,改过,好了。
非常高兴。 |
|
|