2010-08-09 7 views

उत्तर

36

निम्नलिखित कोड

#include <windows.h> 
#include <devguid.h> // for GUID_DEVCLASS_CDROM etc 
#include <setupapi.h> 
#include <cfgmgr32.h> // for MAX_DEVICE_ID_LEN, CM_Get_Parent and CM_Get_Device_ID 
#define INITGUID 
#include <tchar.h> 
#include <stdio.h> 

//#include "c:\WinDDK\7600.16385.1\inc\api\devpkey.h" 

// include DEVPKEY_Device_BusReportedDeviceDesc from WinDDK\7600.16385.1\inc\api\devpropdef.h 
#ifdef DEFINE_DEVPROPKEY 
#undef DEFINE_DEVPROPKEY 
#endif 
#ifdef INITGUID 
#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const DEVPROPKEY DECLSPEC_SELECTANY name = { { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }, pid } 
#else 
#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const DEVPROPKEY name 
#endif // INITGUID 

// include DEVPKEY_Device_BusReportedDeviceDesc from WinDDK\7600.16385.1\inc\api\devpkey.h 
DEFINE_DEVPROPKEY(DEVPKEY_Device_BusReportedDeviceDesc, 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 4);  // DEVPROP_TYPE_STRING 
DEFINE_DEVPROPKEY(DEVPKEY_Device_ContainerId,   0x8c7ed206, 0x3f8a, 0x4827, 0xb3, 0xab, 0xae, 0x9e, 0x1f, 0xae, 0xfc, 0x6c, 2);  // DEVPROP_TYPE_GUID 
DEFINE_DEVPROPKEY(DEVPKEY_Device_FriendlyName,   0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14); // DEVPROP_TYPE_STRING 
DEFINE_DEVPROPKEY(DEVPKEY_DeviceDisplay_Category,  0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 0x5a); // DEVPROP_TYPE_STRING_LIST 
DEFINE_DEVPROPKEY(DEVPKEY_Device_LocationInfo,   0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 15); // DEVPROP_TYPE_STRING 
DEFINE_DEVPROPKEY(DEVPKEY_Device_Manufacturer,   0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 13); // DEVPROP_TYPE_STRING 
DEFINE_DEVPROPKEY(DEVPKEY_Device_SecuritySDS,   0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 26); // DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING 

#define ARRAY_SIZE(arr)  (sizeof(arr)/sizeof(arr[0])) 

#pragma comment (lib, "setupapi.lib") 

typedef BOOL (WINAPI *FN_SetupDiGetDevicePropertyW)(
    __in  HDEVINFO DeviceInfoSet, 
    __in  PSP_DEVINFO_DATA DeviceInfoData, 
    __in  const DEVPROPKEY *PropertyKey, 
    __out  DEVPROPTYPE *PropertyType, 
    __out_opt PBYTE PropertyBuffer, 
    __in  DWORD PropertyBufferSize, 
    __out_opt PDWORD RequiredSize, 
    __in  DWORD Flags 
); 

// List all USB devices with some additional information 
void ListDevices (CONST GUID *pClassGuid, LPCTSTR pszEnumerator) 
{ 
    unsigned i, j; 
    DWORD dwSize, dwPropertyRegDataType; 
    DEVPROPTYPE ulPropertyType; 
    CONFIGRET status; 
    HDEVINFO hDevInfo; 
    SP_DEVINFO_DATA DeviceInfoData; 
    const static LPCTSTR arPrefix[3] = {TEXT("VID_"), TEXT("PID_"), TEXT("MI_")}; 
    TCHAR szDeviceInstanceID [MAX_DEVICE_ID_LEN]; 
    TCHAR szDesc[1024], szHardwareIDs[4096]; 
    WCHAR szBuffer[4096]; 
    LPTSTR pszToken, pszNextToken; 
    TCHAR szVid[MAX_DEVICE_ID_LEN], szPid[MAX_DEVICE_ID_LEN], szMi[MAX_DEVICE_ID_LEN]; 
    FN_SetupDiGetDevicePropertyW fn_SetupDiGetDevicePropertyW = (FN_SetupDiGetDevicePropertyW) 
     GetProcAddress (GetModuleHandle (TEXT("Setupapi.dll")), "SetupDiGetDevicePropertyW"); 

    // List all connected USB devices 
    hDevInfo = SetupDiGetClassDevs (pClassGuid, pszEnumerator, NULL, 
            pClassGuid != NULL ? DIGCF_PRESENT: DIGCF_ALLCLASSES | DIGCF_PRESENT); 
    if (hDevInfo == INVALID_HANDLE_VALUE) 
     return; 

    // Find the ones that are driverless 
    for (i = 0; ; i++) { 
     DeviceInfoData.cbSize = sizeof (DeviceInfoData); 
     if (!SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData)) 
      break; 

     status = CM_Get_Device_ID(DeviceInfoData.DevInst, szDeviceInstanceID , MAX_PATH, 0); 
     if (status != CR_SUCCESS) 
      continue; 

     // Display device instance ID 
     _tprintf (TEXT("%s\n"), szDeviceInstanceID); 

     if (SetupDiGetDeviceRegistryProperty (hDevInfo, &DeviceInfoData, SPDRP_DEVICEDESC, 
               &dwPropertyRegDataType, (BYTE*)szDesc, 
               sizeof(szDesc), // The size, in bytes 
               &dwSize)) 
      _tprintf (TEXT(" Device Description: \"%s\"\n"), szDesc); 

     if (SetupDiGetDeviceRegistryProperty (hDevInfo, &DeviceInfoData, SPDRP_HARDWAREID, 
               &dwPropertyRegDataType, (BYTE*)szHardwareIDs, 
               sizeof(szHardwareIDs), // The size, in bytes 
               &dwSize)) { 
      LPCTSTR pszId; 
      _tprintf (TEXT(" Hardware IDs:\n")); 
      for (pszId=szHardwareIDs; 
       *pszId != TEXT('\0') && pszId + dwSize/sizeof(TCHAR) <= szHardwareIDs + ARRAYSIZE(szHardwareIDs); 
       pszId += lstrlen(pszId)+1) { 

       _tprintf (TEXT("  \"%s\"\n"), pszId); 
      } 
     } 

     // Retreive the device description as reported by the device itself 
     // On Vista and earlier, we can use only SPDRP_DEVICEDESC 
     // On Windows 7, the information we want ("Bus reported device description") is 
     // accessed through DEVPKEY_Device_BusReportedDeviceDesc 
     if (fn_SetupDiGetDevicePropertyW && fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_BusReportedDeviceDesc, 
                      &ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) { 

      if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_BusReportedDeviceDesc, 
               &ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) 
       _tprintf (TEXT(" Bus Reported Device Description: \"%ls\"\n"), szBuffer); 
      if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_Manufacturer, 
               &ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) { 
       _tprintf (TEXT(" Device Manufacturer: \"%ls\"\n"), szBuffer); 
      } 
      if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_FriendlyName, 
               &ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) { 
       _tprintf (TEXT(" Device Friendly Name: \"%ls\"\n"), szBuffer); 
      } 
      if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_LocationInfo, 
               &ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) { 
       _tprintf (TEXT(" Device Location Info: \"%ls\"\n"), szBuffer); 
      } 
      if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_SecuritySDS, 
               &ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) { 
       // See Security Descriptor Definition Language on MSDN 
       // (http://msdn.microsoft.com/en-us/library/windows/desktop/aa379567(v=vs.85).aspx) 
       _tprintf (TEXT(" Device Security Descriptor String: \"%ls\"\n"), szBuffer); 
      } 
      if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_ContainerId, 
               &ulPropertyType, (BYTE*)szDesc, sizeof(szDesc), &dwSize, 0)) { 
       StringFromGUID2((REFGUID)szDesc, szBuffer, ARRAY_SIZE(szBuffer)); 
       _tprintf (TEXT(" ContainerId: \"%ls\"\n"), szBuffer); 
      } 
      if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_DeviceDisplay_Category, 
               &ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) 
       _tprintf (TEXT(" Device Display Category: \"%ls\"\n"), szBuffer); 
     } 

     pszToken = _tcstok_s (szDeviceInstanceID , TEXT("\\#&"), &pszNextToken); 
     while(pszToken != NULL) { 
      szVid[0] = TEXT('\0'); 
      szPid[0] = TEXT('\0'); 
      szMi[0] = TEXT('\0'); 
      for (j = 0; j < 3; j++) { 
       if (_tcsncmp(pszToken, arPrefix[j], lstrlen(arPrefix[j])) == 0) { 
        switch(j) { 
         case 0: 
          _tcscpy_s(szVid, ARRAY_SIZE(szVid), pszToken); 
          break; 
         case 1: 
          _tcscpy_s(szPid, ARRAY_SIZE(szPid), pszToken); 
          break; 
         case 2: 
          _tcscpy_s(szMi, ARRAY_SIZE(szMi), pszToken); 
          break; 
         default: 
          break; 
        } 
       } 
      } 
      if (szVid[0] != TEXT('\0')) 
       _tprintf (TEXT(" vid: \"%s\"\n"), szVid); 
      if (szPid[0] != TEXT('\0')) 
       _tprintf (TEXT(" pid: \"%s\"\n"), szPid); 
      if (szMi[0] != TEXT('\0')) 
       _tprintf (TEXT(" mi: \"%s\"\n"), szMi); 
      pszToken = _tcstok_s (NULL, TEXT("\\#&"), &pszNextToken); 
     } 
    } 

    return; 
} 

int _tmain() 
{ 
    // List all connected USB devices 
    _tprintf (TEXT("---------------\n")); 
    _tprintf (TEXT("- USB devices -\n")); 
    _tprintf (TEXT("---------------\n")); 
    ListDevices(NULL, TEXT("USB")); 

    _tprintf (TEXT("\n")); 
    _tprintf (TEXT("-------------------\n")); 
    _tprintf (TEXT("- USBSTOR devices -\n")); 
    _tprintf (TEXT("-------------------\n")); 
    ListDevices(NULL, TEXT("USBSTOR")); 

    _tprintf (TEXT("\n")); 
    _tprintf (TEXT("--------------\n")); 
    _tprintf (TEXT("- SD devices -\n")); 
    _tprintf (TEXT("--------------\n")); 
    ListDevices(NULL, TEXT("SD")); 

    //_tprintf (TEXT("\n")); 
    //ListDevices(&GUID_DEVCLASS_USB, NULL); 
    //_tprintf (TEXT("\n")); 

    _tprintf (TEXT("\n")); 
    _tprintf (TEXT("-----------\n")); 
    _tprintf (TEXT("- Volumes -\n")); 
    _tprintf (TEXT("-----------\n")); 
    //ListDevices(NULL, TEXT("STORAGE\\VOLUME")); 
    //_tprintf (TEXT("\n")); 
    ListDevices(&GUID_DEVCLASS_VOLUME, NULL); 

    _tprintf (TEXT("\n")); 
    _tprintf (TEXT("----------------------------\n")); 
    _tprintf (TEXT("- devices with disk drives -\n")); 
    _tprintf (TEXT("----------------------------\n")); 
    ListDevices(&GUID_DEVCLASS_DISKDRIVE, NULL); 

    return 0; 
} 

मेरी विंडोज 7 कंप्यूटर पर निम्न उत्पादन का उत्पादन

--------------- 
- USB devices - 
--------------- 
USB\ROOT_HUB20\4&1C1548F&0 
    Device Description: "USB Root Hub" 
    Hardware IDs: 
     "USB\ROOT_HUB20&VID8086&PID3B3C&REV0006" 
     "USB\ROOT_HUB20&VID8086&PID3B3C" 
     "USB\ROOT_HUB20" 
USB\ROOT_HUB20\4&2851D18A&0 
    Device Description: "USB Root Hub" 
    Hardware IDs: 
     "USB\ROOT_HUB20&VID8086&PID3B34&REV0006" 
     "USB\ROOT_HUB20&VID8086&PID3B34" 
     "USB\ROOT_HUB20" 
USB\VID_046D&PID_C52B\6&32FEB3AB&0&2 
    Device Description: "USB Composite Device" 
    Hardware IDs: 
     "USB\VID_046D&PID_C52B&REV_1201" 
     "USB\VID_046D&PID_C52B" 
    Bus Reported Device Description: "USB Receiver" 
    Device Manufacturer: "(Standard USB Host Controller)" 
    Device Location Info: "Port_#0002.Hub_#0003" 
    ContainerId: "{AB5F3BBF-21FC-11E2-9436-70F3954A2325}" 
    vid: "VID_046D" 
    pid: "PID_C52B" 
USB\VID_046D&PID_C52B&MI_00\7&33519F3A&0&0000 
    Device Description: "USB Input Device (Logitech Download Assistant)" 
    Hardware IDs: 
     "USB\VID_046D&PID_C52B&REV_1201&MI_00" 
     "USB\VID_046D&PID_C52B&MI_00" 
    Bus Reported Device Description: "USB Receiver" 
    Device Manufacturer: "Logitech (x64)" 
    Device Location Info: "0000.001a.0000.001.002.000.000.000.000" 
    ContainerId: "{AB5F3BBF-21FC-11E2-9436-70F3954A2325}" 
    vid: "VID_046D" 
    pid: "PID_C52B" 
    mi: "MI_00" 
USB\VID_046D&PID_C52B&MI_01\7&33519F3A&0&0001 
    Device Description: "USB Input Device" 
    Hardware IDs: 
     "USB\VID_046D&PID_C52B&REV_1201&MI_01" 
     "USB\VID_046D&PID_C52B&MI_01" 
    Bus Reported Device Description: "USB Receiver" 
    Device Manufacturer: "(Standard system devices)" 
    Device Location Info: "0000.001a.0000.001.002.000.000.000.000" 
    ContainerId: "{AB5F3BBF-21FC-11E2-9436-70F3954A2325}" 
    vid: "VID_046D" 
    pid: "PID_C52B" 
    mi: "MI_01" 
USB\VID_046D&PID_C52B&MI_02\7&33519F3A&0&0002 
    Device Description: "Logitech Unifying USB receiver" 
    Hardware IDs: 
     "USB\VID_046D&PID_C52B&REV_1201&MI_02" 
     "USB\VID_046D&PID_C52B&MI_02" 
    Bus Reported Device Description: "USB Receiver" 
    Device Manufacturer: "Logitech" 
    Device Location Info: "0000.001a.0000.001.002.000.000.000.000" 
    ContainerId: "{AB5F3BBF-21FC-11E2-9436-70F3954A2325}" 
    vid: "VID_046D" 
    pid: "PID_C52B" 
    mi: "MI_02" 
USB\VID_05C6&PID_9205\6&7A6FBD7&0&4 
    Device Description: "Qualcomm Gobi 2000 USB Composite Device 9205" 
    Hardware IDs: 
     "USB\VID_05C6&PID_9205&REV_0002" 
     "USB\VID_05C6&PID_9205" 
    Bus Reported Device Description: "Qualcomm Gobi 2000" 
    Device Manufacturer: "Qualcomm Incorporated" 
    Device Location Info: "Port_#0004.Hub_#0004" 
    ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}" 
    vid: "VID_05C6" 
    pid: "PID_9205" 
USB\VID_05C6&PID_9205&MI_00\7&210D4D2D&1&0000 
    Device Description: "Qualcomm Gobi 2000 HS-USB Mobile Broadband Device 9205" 
    Hardware IDs: 
     "USB\VID_05C6&PID_9205&REV_0002&MI_00" 
     "USB\VID_05C6&PID_9205&MI_00" 
    Bus Reported Device Description: "Qualcomm Gobi 2000" 
    Device Manufacturer: "Qualcomm Incorporated" 
    Device Location Info: "0000.001d.0000.001.004.000.000.000.000" 
    ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}" 
    vid: "VID_05C6" 
    pid: "PID_9205" 
    mi: "MI_00" 
USB\VID_05C6&PID_9205&MI_01\7&210D4D2D&1&0001 
    Device Description: "Qualcomm Gobi 2000 HS-USB Diagnostics 9205" 
    Hardware IDs: 
     "USB\VID_05C6&PID_9205&REV_0002&MI_01" 
     "USB\VID_05C6&PID_9205&MI_01" 
    Bus Reported Device Description: "Qualcomm Gobi 2000" 
    Device Manufacturer: "Qualcomm Incorporated" 
    Device Friendly Name: "Qualcomm Gobi 2000 HS-USB Diagnostics 9205 (COM6)" 
    Device Location Info: "0000.001d.0000.001.004.000.000.000.000" 
    ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}" 
    vid: "VID_05C6" 
    pid: "PID_9205" 
    mi: "MI_01" 
USB\VID_05C6&PID_9205&MI_02\7&210D4D2D&1&0002 
    Device Description: "Qualcomm Gobi 2000 HS-USB Modem 9205" 
    Hardware IDs: 
     "USB\VID_05C6&PID_9205&REV_0002&MI_02" 
     "USB\VID_05C6&PID_9205&MI_02" 
    Bus Reported Device Description: "Qualcomm Gobi 2000" 
    Device Manufacturer: "Qualcomm Incorporated" 
    Device Friendly Name: "Qualcomm Gobi 2000 HS-USB Modem 9205" 
    Device Location Info: "0000.001d.0000.001.004.000.000.000.000" 
    ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}" 
    vid: "VID_05C6" 
    pid: "PID_9205" 
    mi: "MI_02" 
USB\VID_05C6&PID_9205&MI_03\7&210D4D2D&1&0003 
    Device Description: "Qualcomm Gobi 2000 HS-USB NMEA 9205" 
    Hardware IDs: 
     "USB\VID_05C6&PID_9205&REV_0002&MI_03" 
     "USB\VID_05C6&PID_9205&MI_03" 
    Bus Reported Device Description: "Qualcomm Gobi 2000" 
    Device Manufacturer: "Qualcomm Incorporated" 
    Device Friendly Name: "Qualcomm Gobi 2000 HS-USB NMEA 9205 (COM7)" 
    Device Location Info: "0000.001d.0000.001.004.000.000.000.000" 
    ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}" 
    vid: "VID_05C6" 
    pid: "PID_9205" 
    mi: "MI_03" 
USB\VID_0781&PID_7108\00000000000000031753 
    Device Description: "USB Mass Storage Device" 
    Hardware IDs: 
     "USB\Vid_0781&Pid_7108&Rev_2000" 
     "USB\Vid_0781&Pid_7108" 
    vid: "VID_0781" 
    pid: "PID_7108" 
USB\VID_0930&PID_6545\00D0C9CCDF49EBC06000806C 
    Device Description: "USB Mass Storage Device" 
    Hardware IDs: 
     "USB\Vid_0930&Pid_6545&Rev_0100" 
     "USB\Vid_0930&Pid_6545" 
    vid: "VID_0930" 
    pid: "PID_6545" 
USB\VID_0A5C&PID_217F\70F3954A2325 
    Device Description: "ThinkPad Bluetooth 3.0" 
    Hardware IDs: 
     "USB\VID_0A5C&PID_217F&REV_0360" 
     "USB\VID_0A5C&PID_217F" 
    Bus Reported Device Description: "Broadcom Bluetooth Device" 
    Device Manufacturer: "Broadcom" 
    Device Location Info: "Port_#0004.Hub_#0003" 
    ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}" 
    vid: "VID_0A5C" 
    pid: "PID_217F" 
USB\VID_147E&PID_2016\6&32FEB3AB&0&3 
    Device Description: "TouchChip Fingerprint Coprocessor (WBF advanced mode)" 
    Hardware IDs: 
     "USB\VID_147E&PID_2016&REV_0002" 
     "USB\VID_147E&PID_2016" 
    Bus Reported Device Description: "Biometric Coprocessor" 
    Device Manufacturer: "AuthenTec" 
    Device Location Info: "Port_#0003.Hub_#0003" 
    Device Security Descriptor String: "D:P(A;;GA;;;BA)(A;;GA;;;SY)" 
    ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}" 
    vid: "VID_147E" 
    pid: "PID_2016" 
USB\VID_17EF&PID_480F\6&32FEB3AB&0&6 
    Device Description: "USB Composite Device" 
    Hardware IDs: 
     "USB\VID_17EF&PID_480F&REV_2345" 
     "USB\VID_17EF&PID_480F" 
    Bus Reported Device Description: "Integrated Camera" 
    Device Manufacturer: "(Standard USB Host Controller)" 
    Device Location Info: "Port_#0006.Hub_#0003" 
    ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}" 
    vid: "VID_17EF" 
    pid: "PID_480F" 
USB\VID_17EF&PID_480F&MI_00\7&137E78B0&0&0000 
    Device Description: "Integrated Camera" 
    Hardware IDs: 
     "USB\VID_17EF&PID_480F&REV_2345&MI_00" 
     "USB\VID_17EF&PID_480F&MI_00" 
    Bus Reported Device Description: "Integrated Camera" 
    Device Manufacturer: "Ricoh" 
    Device Friendly Name: "Integrated Camera" 
    Device Location Info: "0000.001a.0000.001.006.000.000.000.000" 
    ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}" 
    Device Display Category: "Imaging.Webcam" 
    vid: "VID_17EF" 
    pid: "PID_480F" 
    mi: "MI_00" 
USB\VID_8087&PID_0020\5&15BBD570&0&1 
    Device Description: "Generic USB Hub" 
    Hardware IDs: 
     "USB\VID_8087&PID_0020&REV_0000" 
     "USB\VID_8087&PID_0020" 
    vid: "VID_8087" 
    pid: "PID_0020" 
USB\VID_8087&PID_0020\5&29432BF7&0&1 
    Device Description: "Generic USB Hub" 
    Hardware IDs: 
     "USB\VID_8087&PID_0020&REV_0000" 
     "USB\VID_8087&PID_0020" 
    vid: "VID_8087" 
    pid: "PID_0020" 

------------------- 
- USBSTOR devices - 
------------------- 
USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER_108&REV_PMAP\00D0C9CCDF49EBC06000806C&0 
    Device Description: "Disk drive" 
    Hardware IDs: 
     "USBSTOR\DiskKingstonDataTraveler_108PMAP" 
     "USBSTOR\DiskKingstonDataTraveler_108" 
     "USBSTOR\DiskKingston" 
     "USBSTOR\KingstonDataTraveler_108P" 
     "KingstonDataTraveler_108P" 
     "USBSTOR\GenDisk" 
     "GenDisk" 
    Bus Reported Device Description: "Kingston DataTraveler 108 USB Device" 
    Device Manufacturer: "(Standard disk drives)" 
    Device Friendly Name: "Kingston DataTraveler 108 USB Device" 
    ContainerId: "{D9CC9C62-4C1D-5CC2-953C-9B0E27AB05E0}" 
USBSTOR\DISK&VEN_SANDISK&PROD_CRUZER_TITANIUM&REV_2000\00000000000000031753&0 
    Device Description: "Disk drive" 
    Hardware IDs: 
     "USBSTOR\DiskSanDisk_Cruzer_Titanium_2000" 
     "USBSTOR\DiskSanDisk_Cruzer_Titanium_" 
     "USBSTOR\DiskSanDisk_" 
     "USBSTOR\SanDisk_Cruzer_Titanium_2" 
     "SanDisk_Cruzer_Titanium_2" 
     "USBSTOR\GenDisk" 
     "GenDisk" 
    Bus Reported Device Description: "SanDisk Cruzer Titanium USB Device" 
    Device Manufacturer: "(Standard disk drives)" 
    Device Friendly Name: "SanDisk Cruzer Titanium USB Device" 
    ContainerId: "{DB834D8A-6F58-11E2-AA64-70F3954A2325}" 

-------------- 
- SD devices - 
-------------- 
SD\VID_74&OID_4A45&PID_USD&REV_1.0\5&3369D5EF&0&0 
    Device Description: "SD Storage Card" 
    Hardware IDs: 
     "SD\VID_74&OID_4a45&PID_USD&REV_1.0" 
     "SD\VID_74&OID_4a45&PID_USD" 
    Bus Reported Device Description: "SD Memory Card" 
    Device Manufacturer: "Generic" 
    Device Friendly Name: "SD Memory Card" 
    ContainerId: "{C17922A4-7814-11E2-BF78-70F3954A2325}" 
    vid: "VID_74" 
    pid: "PID_USD" 

----------- 
- Volumes - 
----------- 
STORAGE\VOLUME\_??_USBSTOR#DISK&VEN_SANDISK&PROD_CRUZER_TITANIUM&REV_2000#00000000000000031753&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B} 
    Device Description: "Generic volume" 
    Hardware IDs: 
     "STORAGE\Volume" 
STORAGE\VOLUME\{0A6B09D2-D440-11E1-9886-806E6F6E6963}#0000000000100000 
    Device Description: "Generic volume" 
    Hardware IDs: 
     "STORAGE\Volume" 
STORAGE\VOLUME\{0A6B09D2-D440-11E1-9886-806E6F6E6963}#0000000006500000 
    Device Description: "Generic volume" 
    Hardware IDs: 
     "STORAGE\Volume" 
STORAGE\VOLUME\_??_USBSTOR#DISK&VEN_KINGSTON&PROD_DATATRAVELER_108&REV_PMAP#00D0C9CCDF49EBC06000806C&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B} 
    Device Description: "Generic volume" 
    Hardware IDs: 
     "STORAGE\Volume" 
STORAGE\VOLUME\_??_SD#VID_74&OID_4A45&PID_USD&REV_1.0#5&3369D5EF&0&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B} 
    Device Description: "Generic volume" 
    Hardware IDs: 
     "STORAGE\Volume" 
    vid: "VID_74" 
    pid: "PID_USD" 

---------------------------- 
- devices with disk drives - 
---------------------------- 
IDE\DISKSAMSUNG_SSD_830_SERIES__________________CXM02B1Q\4&398487B7&0&0.0.0 
    Device Description: "Disk drive" 
    Hardware IDs: 
     "IDE\DiskSAMSUNG_SSD_830_Series__________________CXM02B1Q" 
     "IDE\SAMSUNG_SSD_830_Series__________________CXM02B1Q" 
     "IDE\DiskSAMSUNG_SSD_830_Series__________________" 
     "SAMSUNG_SSD_830_Series__________________CXM02B1Q" 
     "GenDisk" 
    Bus Reported Device Description: "SAMSUNG SSD 830 Series" 
    Device Manufacturer: "(Standard disk drives)" 
    Device Friendly Name: "SAMSUNG SSD 830 Series" 
    Device Location Info: "0" 
    ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}" 
USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER_108&REV_PMAP\00D0C9CCDF49EBC06000806C&0 
    Device Description: "Disk drive" 
    Hardware IDs: 
     "USBSTOR\DiskKingstonDataTraveler_108PMAP" 
     "USBSTOR\DiskKingstonDataTraveler_108" 
     "USBSTOR\DiskKingston" 
     "USBSTOR\KingstonDataTraveler_108P" 
     "KingstonDataTraveler_108P" 
     "USBSTOR\GenDisk" 
     "GenDisk" 
    Bus Reported Device Description: "Kingston DataTraveler 108 USB Device" 
    Device Manufacturer: "(Standard disk drives)" 
    Device Friendly Name: "Kingston DataTraveler 108 USB Device" 
    ContainerId: "{D9CC9C62-4C1D-5CC2-953C-9B0E27AB05E0}" 
SD\VID_74&OID_4A45&PID_USD&REV_1.0\5&3369D5EF&0&0 
    Device Description: "SD Storage Card" 
    Hardware IDs: 
     "SD\VID_74&OID_4a45&PID_USD&REV_1.0" 
     "SD\VID_74&OID_4a45&PID_USD" 
    Bus Reported Device Description: "SD Memory Card" 
    Device Manufacturer: "Generic" 
    Device Friendly Name: "SD Memory Card" 
    ContainerId: "{C17922A4-7814-11E2-BF78-70F3954A2325}" 
    vid: "VID_74" 
    pid: "PID_USD" 
USBSTOR\DISK&VEN_SANDISK&PROD_CRUZER_TITANIUM&REV_2000\00000000000000031753&0 
    Device Description: "Disk drive" 
    Hardware IDs: 
     "USBSTOR\DiskSanDisk_Cruzer_Titanium_2000" 
     "USBSTOR\DiskSanDisk_Cruzer_Titanium_" 
     "USBSTOR\DiskSanDisk_" 
     "USBSTOR\SanDisk_Cruzer_Titanium_2" 
     "SanDisk_Cruzer_Titanium_2" 
     "USBSTOR\GenDisk" 
     "GenDisk" 
    Bus Reported Device Description: "SanDisk Cruzer Titanium USB Device" 
    Device Manufacturer: "(Standard disk drives)" 
    Device Friendly Name: "SanDisk Cruzer Titanium USB Device" 
    ContainerId: "{DB834D8A-6F58-11E2-AA64-70F3954A2325}" 

SetupDiGetDeviceProperty कॉल के परिणाम "बस की सूचना दी डिवाइस विवरण" के साथ प्रदर्शित लाइनों। यदि आप अन्य उत्तरों का पालन करेंगे तो आप डिवाइस के बारे में कुछ अतिरिक्त जानकारी प्राप्त कर सकते हैं: this one और another one

+1

'" SetupDiGetDevicePropertyA "मौजूद नहीं है [msdn doc] (http://msdn.microsoft.com/en-us/library/windows/hardware/ff551963 (v = vs.85) .aspx), तो अगर आप गैर-यूनिकोड चलाने पर "बस रिपोर्ट किए गए डिवाइस विवरण" के आउटपुट को देखना चाहते हैं, आपको इस पंक्ति में डालना होगा: 'printf ((" बस रिपोर्ट किए गए डिवाइस विवरण: \ "% ls \" \ n "), (WCHAR *) szDesc); 'और' SetupDiGetDevicePropertyA' को शीर्ष पर 'SetupDiGetDevicePropertyW'' में बदलें। – phyatt

+0

@phyatt: आपकी टिप्पणी के लिए धन्यवाद। मैंने कई वर्षों से गैर-यूनिकोड को संकलित नहीं किया था। :-) किसी भी तरह से आप सही हैं और मैंने कोड को अपडेट किया है जिसे मैंने 2,5 साल पहले पोस्ट किया था। उत्तर के अंत में मैंने दो अन्य पुराने उत्तरों के संदर्भ शामिल किए जो डिस्क उपकरणों के बारे में अतिरिक्त जानकारी प्रदान कर सकते हैं। – Oleg

+0

@ प्रकाशकघाट: आपका स्वागत है! मुझे खुशी है कि मेरा पुराना जवाब अभी भी मदद करता है। – Oleg

संबंधित मुद्दे