阅读:1828回复:4
DeviceIoControl返回TRUE,但是输入出参数不对?
今天我遇到一个奇怪的问题。
我使用的所有DeviceIoControl函数,返回值都不为0。但是所有的DeviceIoControl函数的倒数第二个参数值为0,输入输出缓冲区都无效或为0,那一位大虾能说明一下原因呀! BOOL DeviceIoControl( HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped ); |
|
|
沙发#
发布于:2004-10-30 22:26
驱动没有处理好
虽然Complete,并且使用了STATUS_SUCCESS,但你没有设置好Information字段 |
|
|
板凳#
发布于:2004-10-30 22:52
情况是这样的。
应用程序动态加载驱动程序,并且和驱动程序通过DeviceIoControl交互信息。 应用程序和驱动程序都是别人做好了的,可以正常通信。但我觉得他的应用程序有点繁,就删减了他的部分代码,驱动程序没有修改。 这一改就出现上面所说的问题了! 我看了代码好几遍,没有发现问题。 大家遇到过这种问题吗? [编辑 - 10/30/04 by aasa2] |
|
|
地板#
发布于:2004-10-31 18:04
那应该是你修改带来的问题
可能先需要执行某些request,而你修改后没有执行 也或者你的参数传递不对,如果你有驱动的代码,看看驱动处理是否存在依赖关系,当然应用也应该能看得出来 |
|
|
地下室#
发布于:2004-10-31 18:20
问题解决,如AllenZh所说的一样。
|
|
|