获取串口设备的VID PID

    获取串口设备,然后获取其VID PID是否是我们想要的   

    HDEVINFO hDevInfo;
    SP_DEVINFO_DATA DeviceInfoData;
    DWORD  i;

    // 指定设备类型GUID,得到该类型所有设备的设备列表,这里是查找所有串口设备      
    GUID comUID = { 0x4d36E978, 0xE325, 0x11CE, { 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18 } };
    hDevInfo = ::SetupDiGetClassDevs(&comUID, 0, 0, DIGCF_PRESENT);
    if (hDevInfo == INVALID_HANDLE_VALUE)
    {
        PStressMgr->WriteLog(_T("设备打开失败"));
        return EN_PCBA_TEST_OK;;
    }

    // 循环列举  
    int nRet = EN_USB_INTERFACE_FAILED;
    DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
    for (i = 0; ::SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData); i++)
    {
        char  szClassBuf[MAX_PATH] = { 0 };
        TCHAR szDIS[MAX_PATH] = { 0 };
        DWORD nSize = 0;
        //获取设备描述信息
        SetupDiGetDeviceInstanceId(hDevInfo, &DeviceInfoData, szDIS, MAX_PATH, &nSize);
        CString strDIS(szDIS);
        if (-1 != strDIS.Find(_T("VID_10C4&PID_EA60")))
        {
            nRet = EN_PCBA_TEST_OK;
            break;
        }
    }
    //  释放     
    SetupDiDestroyDeviceInfoList(hDevInfo);

你可能感兴趣的:(linux,c++,运维)