usb info



  • Hallo,

    ich iteriere usb -Geräte, wenn ich auf eine storage class stoße, würde ich gern mehr Information über das Wechselmedium erlangen unter Verwendung des Pid und Vid das bei der Iteration hergelitten wurde.

    Z.B Speicher größe und sonnstige Informationen:

    Ich zähle die Geräte wie folgt auf:

    pseudo:

    HDEVINFO deviceInfoSet;
      GUID *guidDev = (GUID*) &GUID_DEVCLASS_USB; 
    
      deviceInfoSet = SetupDiGetClassDevs(guidDev, NULL, NULL, DIGCF_PRESENT | DIGCF_PROFILE);
      TCHAR buffer [4000];
      DWORD buffersize =4000;
    
      int memberIndex = 0;
      int iterator = 0;
    
      while (true) 
      {
    		SP_DEVINFO_DATA deviceInfoData;
    		ZeroMemory(&deviceInfoData, sizeof(SP_DEVINFO_DATA));
    		deviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
    
    		if(::SetupDiEnumDeviceInfo(deviceInfoSet, memberIndex, &deviceInfoData) == FALSE) 
    		{
    			if (GetLastError() == ERROR_NO_MORE_ITEMS) 
    			{
    			  break;
    			}
    		}
    
    		DWORD nSize=0 ;
    		::SetupDiGetDeviceInstanceId(deviceInfoSet, &deviceInfoData, buffer, sizeof(buffer), &nSize);
    		buffer [nSize] ='\0';
    
    		}
    

    Ich kann auch den Laufwerksbuchstaben herausbekommen, möchte aber Hardware
    nahe Informationen erlangen wie z.B. Blockgröße und anderes. Die ich in MFC
    Felder anzeige 🙂

    Vielen Dank für Hinweise
    K.


Log in to reply