yphuan
驱动牛犊
驱动牛犊
  • 注册日期2002-11-24
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1372回复:1

请教关于DeviceIoControl函数的用法

楼主#
更多 发布于:2003-07-03 11:00
我想发送一个控制码给驱动程序,部分代码如下
DWORD dw;
CString s;
HANDLE handle;
s.Format(_T(\"\\\\??\\\\COM%d\"),m_Port);//m_Port=1、2、3...
BOOL res=DeviceIoControl(hDevice,IOCTL_SERMON_STARTMONITOR,(PVOID) (LPCTSTR) s,(s.GetLength()+1)*sizeofWCHAR),&handle,sizeof(MHANDLE),&dw,NULL);
其中hDevice是CreateFile返回的设备对象句柄。
但是程序运行时,返回的res总是不正确,就是函数没有成功返回,GetLastError说参数不正确,我看不出来哪个参数不正确。
请教究竟应该怎么写?
谢谢!  
emt_lx
驱动牛犊
驱动牛犊
  • 注册日期2002-08-14
  • 最后登录2010-10-25
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-03 11:52
从你的程序上,看不出错误,如果有问题,我想可能是你的字符传递出现了问题,这要看你的driver能否正确识别你的参数了,你的传递强行指定的字符串长度可能有问题,如果是我,我会显性使用字符串,而不是CString.
游客

返回顶部