hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2152回复:6

为何我的DEVICEIOCONTROL总是说我参数错?我哪儿错了

楼主#
更多 发布于:2004-01-07 11:48
int WritePort(UCHAR Port,UCHAR Value)
{
           DWORD dwResult = 0;
UCHAR PV[2] = {Port,Value};
if (!DeviceIoControl(hDevice,
EVENT_WRITEPORT,
&PV,
2,
NULL,
0,
&dwResult,
NULL)
)
return GetLastError();
return 0;
}

GetLastError()总是返回87,查MSDN说是参数错,我哪用错了啊????
EVENT_WRITEPORT是我用DRIVERSTUDIO向导时加的,定义为
#define EVENT_WRITEPORT CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_BUFFERED, FILE_ANY_ACCESS)
hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-01-07 12:16
试过了,还试过2*sizeof(UCHAR),感觉不象只是单纯 的参数错那么简单,是不是整个驱动程序哪有问题
hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-07 12:31
甚至我用
if (!DeviceIoControl(hDevice,
EVENT_CLOSE,
NULL,
0
NULL,
0,
&dwResult,
NULL)
)
return GetLastError();

GetLastError()也是说87错,我要疯了,大家帮帮我吧
hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-07 15:07
啊,我真是猪头,我把DRV下DEVICE函数对应SWITCH的操作给删了,原来会这样报错。。。。。
游客

返回顶部