lotusflower
驱动牛犊
驱动牛犊
  • 注册日期2006-11-25
  • 最后登录2007-05-23
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:4714回复:1

用VC开发HID设备时使用SetupDiEnumDeviceInterfaces函数时返回值为什么总是0?

楼主#
更多 发布于:2007-05-23 13:53
如题,有什么可能的原因吗?
ytwei
驱动小牛
驱动小牛
  • 注册日期2005-04-01
  • 最后登录2010-07-30
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望102点
  • 贡献值0点
  • 好评度85点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-05-23 19:42
1. 首先使用GetLastError看看调用失败后的错误代码;
2. 导致失败可能的原因有:
2.1 接口类的GUID没有给对,使用HidD_GetHidGuid获取HID的GUID了吗?
2.2 索引参数赋初值了吗?
2.3 deviceInterfaceData初始化了吗?
2.4 ...
给你一个例子,你参照下吧:
    HidD_GetHidGuid (&hidGuid);
    hDeviceInfo = SetupDiGetClassDevs ( &hidGuid,NULL,NULL,
                (DIGCF_PRESENT | DIGCF_DEVICEINTERFACE));
    if (hDeviceInfo == INVALID_HANDLE_VALUE)
    {
        return 0;
    }

    deviceInterfaceData.cbSize = sizeof (SP_INTERFACE_DEVICE_DATA);
    currentHidDevice = 0;

    while (SetupDiEnumDeviceInterfaces (hDeviceInfo, 0, &hidGuid, currentHidDevice, &deviceInterfaceData) ) {......}
游客

返回顶部