Results 1 to 20 of 35

Thread: How to get vendor id and product id of a USB device on windows system

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #16
    Join Date
    Apr 2010
    Posts
    48
    Thanks
    4
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: How to get vendor id and product id of a USB device on windows system

    Hello fatjuicymole...

    please find my code

    static GUID GUID_DEVINTERFACE_USB_DEVICE =
    { 0xA5DCBF10L, 0x6530, 0x11D2, { 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED } };

    HANDLE hInfo = SetupDiGetClassDevs(&GUID_DEVINTERFACE_USB_DEVICE, NULL,NULL,DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);

    if ( hInfo == INVALID_HANDLE_VALUE )
    {
    qDebug ()<<"invalid";
    }
    else
    {
    qDebug ()<<"valid handle";

    qDebug ()<<hInfo;


    }

    SP_DEVINFO_DATA DeviceInfoData;

    DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);

    SP_INTERFACE_DEVICE_DATA Interface_Info;

    Interface_Info.cbSize = sizeof(Interface_Info);

    //
    DWORD i;

    DWORD InterfaceNumber= 0;

    for (i=0;SetupDiEnumDeviceInfo(hInfo,i,&DeviceInfoData );i++)
    {
    DWORD DataT;

    LPTSTR buffer = NULL;

    DWORD buffersize = 0;

    while (!SetupDiGetDeviceRegistryProperty( hInfo,&DeviceInfoData,SPDRP_DEVICEDESC,&DataT,(PBY TE)buffer,buffersize,&buffersize))
    {
    //
    {
    if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
    {
    // Change the buffer size.
    if (buffer) LocalFree(buffer);

    buffer = (LPTSTR)LocalAlloc(LPTR,buffersize);

    }
    else
    {
    // Insert error handling here.
    break;

    }

    qDebug ()<<"hhhh";

    qDebug ()<<(TEXT("Device Number %i is: %s\n"),i, buffer);

    if (buffer) LocalFree(buffer);

    }

    if ( GetLastError()!=NO_ERROR && GetLastError()!=ERROR_NO_MORE_ITEMS )
    {
    // Insert error handling here.
    qDebug ()<<"return false";

    }

    InterfaceNumber = 0; // this just returns the first one, you can iterate on this

    //DeviceInterfaceData.cbSize = sizeof(DeviceInterfaceData);

    if (SetupDiEnumDeviceInterfaces(hInfo,NULL,&GUID_DEVI NTERFACE_USB_DEVICE,InterfaceNumber,&Interface_Inf o))
    {

    printf("\nGot interface");

    DWORD needed;

    h = SetupDiGetDeviceInterfaceDetail(hInfo, &Interface_Info, NULL, 0, &needed,&DeviceInfoData);





    //qDebug ()<<Interface_Info.InterfaceClassGuid;




    }




    else
    {
    printf("\nNo interface");

    //ErrorExit((LPTSTR) "SetupDiEnumDeviceInterfaces");

    if ( GetLastError() == ERROR_NO_MORE_ITEMS) printf(", since there are no more items found.");

    else printf(", unknown reason.");

    }

    // Cleanup
    SetupDiDestroyDeviceInfoList(hInfo);

    qDebug ()<<"return true";









    //
    }
    }


    Does this code seem correct?

    i dont know how to get the information from the device

    please lead me further..

    Thank you
    Last edited by newb; 29th May 2010 at 08:11.

Similar Threads

  1. Get the product/device name using QT library?
    By predatorz in forum Newbie
    Replies: 3
    Last Post: 14th January 2010, 03:53
  2. Vendor and Model Name from USB Devices
    By NoRulez in forum Qt Programming
    Replies: 6
    Last Post: 20th July 2009, 09:01
  3. Replies: 1
    Last Post: 19th September 2008, 15:43
  4. Problem whis open device in Windows
    By Pavka in forum Qt Programming
    Replies: 3
    Last Post: 19th November 2007, 10:13
  5. Ho to get the windows system directory with Qt4
    By rmagro in forum Qt Programming
    Replies: 4
    Last Post: 30th August 2007, 13:30

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.