zhoujb99
驱动牛犊
驱动牛犊
  • 注册日期2004-03-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1819回复:7

d12的pc机应用程序SetupDiEnumDeviceInterfaces问题!

楼主#
更多 发布于:2005-03-07 17:10
我做d12的pc机应用程序,但是老是打不开设备。
SetupDiEnumDeviceInterfaces调用错误,使用GetLastError()得到错误码为259。请教各位大虾为什么?
程序如下:
HDEVINFO HardwareDeviceInfo;
GUID pGuid = {0x4D1E55B2,0xF16F,0x11CF,{0x88,0xCB,0x00,0x11,0x11,0x00,0x00,0x30}};
HardwareDeviceInfo = SetupDiGetClassDevs(
         &pGuid,
         NULL,
         NULL,
         (DIGCF_PRESENT | DIGCF_INTERFACEDEVICE )
         );
if(HardwareDeviceInfo == INVALID_HANDLE_VALUE)
{
}
SP_INTERFACE_DEVICE_DATA DeviceInfoData;
DeviceInfoData.cbSize = sizeof(SP_INTERFACE_DEVICE_DATA);

PSP_INTERFACE_DEVICE_DETAIL_DATA functionClassDeviceData = NULL;
ULONG  predictedLength = 0;
ULONG  requiredLength = 0;
if(!SetupDiEnumDeviceInterfaces(HardwareDeviceInfo,
                        0,
                        &pGuid,
                        0,
                        &DeviceInfoData
                        ))
{
}

if (!SetupDiGetDeviceInterfaceDetail(
                        HardwareDeviceInfo,
                        &DeviceInfoData,
                        NULL,
                        0,
                        &requiredLength,
                        NULL
                        ))
{
}
predictedLength = requiredLength;
functionClassDeviceData = (PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc(predictedLength);
if(!SetupDiGetInterfaceDeviceDetail(
                        HardwareDeviceInfo,
                        &DeviceInfoData,
                        functionClassDeviceData,
                        predictedLength,
                        &requiredLength,
                        NULL))
{

}

HANDLE hDevice;
hDevice = CreateFile(
                  functionClassDeviceData->DevicePath,
                  GENERIC_READ | GENERIC_WRITE,
                  FILE_SHARE_READ | FILE_SHARE_WRITE,
                  NULL,
                  OPEN_EXISTING,
                  0,
                  NULL);
if(hDevice==INVALID_HANDLE_VALUE)
{
AfxMessageBox(\"OpenDevice error\");
return;
}
else
AfxMessageBox(\"OpenDevice success\");

char completeDeviceName[256] = \"\";
strcpy (completeDeviceName,functionClassDeviceData->DevicePath);
strcat (completeDeviceName,\"\\\\PIPE01\");
HANDLE hUSBPIPE;
hUSBPIPE = CreateFile(
            completeDeviceName,
            GENERIC_READ|GENERIC_WRITE,
            FILE_SHARE_READ|FILE_SHARE_WRITE,
            NULL,
            OPEN_EXISTING,
            0,
            NULL
            );

}
zhoujb99
驱动牛犊
驱动牛犊
  • 注册日期2004-03-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-07 17:11
希望各位大虾多多指教!急!
另外我想问一下,cypress的2131是不是也可以用这种方法打开,我以前做过2131的,但是应用程序使用GDP写的。
zhoujb99
驱动牛犊
驱动牛犊
  • 注册日期2004-03-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-08 10:00
没人理吗?郁闷中!
wakeremote
驱动牛犊
驱动牛犊
  • 注册日期2005-03-07
  • 最后登录2005-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-13 15:53
怎么还没有人回贴呀

驱动世界
wakeremote
驱动牛犊
驱动牛犊
  • 注册日期2005-03-07
  • 最后登录2005-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-14 09:21
继续问一下
各位写pc端的应用程序采用的是什么方法呀
驱动世界
wakeremote
驱动牛犊
驱动牛犊
  • 注册日期2005-03-07
  • 最后登录2005-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-15 09:57
大家难道不写应用程序吗???

QQ:150451048
驱动世界
junki
驱动牛犊
驱动牛犊
  • 注册日期2004-09-02
  • 最后登录2007-11-30
  • 粉丝0
  • 关注0
  • 积分124分
  • 威望13点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-05-17 16:28
给我分,我帮你解决

首先确定人的GUID是否正确
然后把你的函数改一下:
Result = SetupDiEnumDeviceInterfaces _
            (DeviceInfoSet, _
            0, _
            HidGuid, _
            MemberIndex, _
            MyDeviceInterfaceData)

MemberIndex为你寻找到USB设备的个数。
xiaozhu912
驱动牛犊
驱动牛犊
  • 注册日期2004-09-27
  • 最后登录2005-08-25
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-05-17 19:47
有没有加\"setupapi.h\"头文件。
好像还要加个库文件
#pragma comment(lib,\"setupapi.lib\")
我是这样就可以了
游客

返回顶部