changxu21
驱动牛犊
驱动牛犊
  • 注册日期2003-08-06
  • 最后登录2007-01-25
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1204回复:1

急!在windows2003下枚举HID设备失败!但在XP下一切正常!为何?

楼主#
更多 发布于:2007-01-24 16:53
  以下是程序片段:

    // 枚举 HID 设备
    GUID hidguid;
    HidD_GetHidGuid(&hidguid);
    HANDLE hDevice = INVALID_HANDLE_VALUE;
    
    HDEVINFO info = SetupDiGetClassDevs(&hidguid, NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);
    DWORD dwError = GetLastError();
    if (info != INVALID_HANDLE_VALUE)
    {
        SP_DEVICE_INTERFACE_DATA ifdata;
        ifdata.cbSize = sizeof(ifdata);

        for (DWORD devindex = 0;
                SetupDiEnumDeviceInterfaces(info, NULL, &hidguid, devindex, &ifdata); ++devindex)
        {
……………………………………
        }
    }

在XP下执行到 GetLastError(); 时返回 0;而2003下返回997也就是 ERROR_IO_PENDING ;若在继续执行下去 SetupDiEnumDeviceInterfaces 将返回失败;而xp下一切正常。请教是什么原因?特急!
changxu21
驱动牛犊
驱动牛犊
  • 注册日期2003-08-06
  • 最后登录2007-01-25
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-01-24 20:52
是不是和win2003的安全配置有关系?
游客

返回顶部