duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1742回复:4

我的guid设置也是正确的,为什么我的应用程序找不到usb设备?谢谢

楼主#
更多 发布于:2004-09-01 18:36
我的guid设置也是正确的,为什么我的应用程序找不到usb设备?谢谢!!!
HDEVINFO HardwareDeviceInfo;
SP_INTERFACE_DEVICE_DATA deviceInfoData;
int NumberDevices;
HardwareDeviceInfo = SetupDiGetClassDevs(
&GUID_CLASS_ATLAS_BULK,//{6bdd1fc6-810f-11d0-bec7-08002be2092f}
NULL,
NULL,
(DIGCF_PRESENT|DIGCF_INTERFACEDEVICE)
);
NumberDevices = 4;
deviceInfoData.cbSize = sizeof(SP_INTERFACE_DEVICE_DATA);
for(int i=0;i < NumberDevices;i++)
{
SetupDiEnumDeviceInterfaces(HardwareDeviceInfo,
0,
&GUID_CLASS_ATLAS_BULK,
i,
&deviceInfoData);
}


PSP_INTERFACE_DEVICE_DETAIL_DATA functionClassDeviceData = NULL;
ULONG predictedLength = 0;
ULONG requiredLength = 0;
SetupDiGetInterfaceDeviceDetail(HardwareDeviceInfo,
&deviceInfoData,
NULL,
0,
&requiredLength,
NULL);
predictedLength = requiredLength;
functionClassDeviceData = (PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc(predictedLength);

if(!SetupDiGetInterfaceDeviceDetail(HardwareDeviceInfo,
&deviceInfoData,
functionClassDeviceData,
predictedLength,
&requiredLength,
NULL))
{
AfxMessageBox("Get Device Path Failed");
//return 0;//INVALID_HANDLE_VALUE;
}
else
{
AfxMessageBox("Get Device Path Success");
}

HANDLE hDeviceHandle;
hDeviceHandle = CreateFile(
functionClassDeviceData->DevicePath,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,0,
NULL
);
if(hDeviceHandle == INVALID_HANDLE_VALUE)
AfxMessageBox("Get Device Handle Failed");
else
{
AfxMessageBox("Get Device Handle Success");
}

char completeDeviceName[256] ="";
strcat(completeDeviceName,functionClassDeviceData->DevicePath);
strcat(completeDeviceName,"\\PIPE2");
hIntfHandle = CreateFile(
completeDeviceName,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);
if(hIntfHandle == INVALID_HANDLE_VALUE)
AfxMessageBox("Get Interface Handle Failed");
else
{
AfxMessageBox("Get Interface Handle Success");
}
junki
驱动牛犊
驱动牛犊
  • 注册日期2004-09-02
  • 最后登录2007-11-30
  • 粉丝0
  • 关注0
  • 积分124分
  • 威望13点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-17 17:20
设备选择驱动程序是根据VID和PID来确定的

你有两个,肯定不行的,建议删除一个试一试。
duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-06 15:04
DEFINE_GUID(GUID_CLASS_MODEM_BULK,
0x4D36E96D, 0xE325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18);
我已
duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-04 17:18
执行到SetupDiGetClassDevs()就有问题了,error code 是ERROR_IO_PENDING(Overlapped I/O operation is in progress.)。我的理解是我的设备有多种功能,使用一个guid,但有不同种驱动程序,我如何定位驱动程序使得我的应用程序可以和我希望的驱动程序通信?谢谢!!!
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-01 21:17
执行到哪里出错或失败了,跟踪一下吗
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
游客

返回顶部