HANDLE Csearch::OpenByInterface(GUID *pClassGuid, DWORD instance, PDWORD pError)
{
    HANDLE hDev;
CDeviceInterfaceClass DevClass(pClassGuid, pError); if (*pError != ERROR_SUCCESS)
return INVALID_HANDLE_VALUE; CDeviceInterface DevInterface(&DevClass, instance, pError); if (*pError != ERROR_SUCCESS)
return INVALID_HANDLE_VALUE; hDev = CreateFile(
DevInterface.DevicePath(),
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
); if (hDev == INVALID_HANDLE_VALUE)
{
*pError = GetLastError();
}
return hDev; 
}这样的一个函数 ,要说返回的是一个hDev,现在的问题是我如何去检测hDev 的信息,能否有像在messagebox中给出相应的提示呢。谢谢大家的指教,我是刚刚接触vc++与usb的编程。

解决方案 »

  1.   

    一楼中的发包查看 如何通过vc向usb发送包检测是否连接的usb是我关心的usb呢?对于二楼的建议,首先,我定义设备的#define UsbTestDevice_CLASS_GUID \
    {0xa5dcbf10L, 0x6530, 0x11d2, {0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xed}}是这个,通过查找设备的路径获取usb的句柄,现在的问题是他不仅识别普通的u盘,我使用的ez_usb(这个是我想要的设备)插上去也能识别,其次,使用HANDLE hDevice;
    char a[10];
     hDevice = OpenByInterface( &ClassGuid, 0, &Error);
     sprintf(a, "%ld", (long) hDevice);
     MessageBox(a);测试 得到的结果是正整数值,证明句柄能获取,最后的问题是我如何确定现在的这个句柄就是我所关心的ez_usb的句柄呢?有什么方法测试出来吗?求助!希望wzwind,oyljerry这两位大侠能出手相助非常感谢,同时也着急