DeviceIoControl出错返回ERROR_SEM_TIMEOUT(121)
某款手机有个后门,使用官方的PC工具可以轻易的访问手机,我通过API Monitor监控发现它通过DeviceIoControl向此手机的USB连接发出了一个IOCTL_SCSI_PASS_THROUGH指令。我将监控的数据抓下来,完全照抄通过DeviceIoControl发过去,发现实际是成功的(即能成功打开手机的这个后门),但DeviceIoControl却返回失败,GetLastError值为ERROR_SEM_TIMEOUT(121),即所谓的信号超时。而实际上,DeviceIoControl中设置的超时值很长,调用时是立即返回失败。
另外,我有使用Bus Hound这个软件监控USB通信,并且使用其模拟发送指令的功能,与上面的情况类似,发送失败(提示的错误是bus reset),但实际上也能成功打开手机的后门。
不知道哪位大虾有此经验,这倒底是什么问题?