somebody630
驱动牛犊
驱动牛犊
  • 注册日期2004-02-14
  • 最后登录2005-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:938回复:1

高手帮帮忙!

楼主#
更多 发布于:2004-03-20 15:36
^o^:
      我在调用函数: if(!SetupDiGetInterfaceDeviceDetail (   HardwareDeviceInfo,
                                            &DeviceInfoData,
                                            functionClassDeviceData,
                                            INTERFACE_DETAIL_SIZE,
                                            NULL,
                                            NULL))
{
    SetupDiDestroyDeviceInfoList( HardwareDeviceInfo );
    delete functionClassDeviceData;
    flag=4;
    return FALSE;
}
时,总是返回FALSE.为什么呢?要如何才能返回正确呢?其中的SetupDiGetClassDevs(),SetupDiEnumDeviceInterfaces()函数返回都已成功了.请高手指点一二!(一定要接上USB设备才能返回正确么?)
科技让我永远领先
lnt_ddn
驱动牛犊
驱动牛犊
  • 注册日期2004-03-06
  • 最后登录2012-02-02
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-20 20:05
我也没有实际做过,但是,chris_cant的WDM书上是这样做的
1.SetupDiGetClassDevs(),SetupDiEnumDeviceInterfaces调用

2.第一次调用SetupDiGetInterfaceDeviceDetail ( HardwareDeviceInfo,&DeviceInfoData,NULL,0,&ReqLen,NULL)
PSP_INTERFACE_DEVICE_DETAIL_DATA.ifDetail=new char[ReqLen];

3.第二次调用SetupDiGetInterfaceDeviceDetail(HardwareDeviceInfo,&DeviceInfoData,ifDatail,ReqLen,NULL,NULL)

就是说第一次获取信息长度,第二次获取接口设备信息,具体可以参考该书。
游客

返回顶部