title: Setting USB configuration fails
body: <p>I'm trying to talk to a USB device using libusb, but I feel like I'm tripping up on the first leg of the race.  I know precisely what endpoints I need to talk to, etc., but I can't even get that far.  I have, in essence:</p>
  
  <pre><code>usb_device *dev = ...; // opened from get_busses()
  usb_set_configuration(dev, dev-&gt;config[0].bConfigurationValue); // bConfigVal = 1
  </code></pre>
  
  <p>Now, I can look at the device information in debug mode and I know that the current configuration is 0 (uninitialized / just after restart), and there's exactly 1 valid configuration, which has a configuration number of 1.  But when I set the config to 1, I get a return value of -22, which (passed through the stringifier) translates to "windows api error: bad parameter.</p>
  
  <p>I haven't been able to find other people having a similar problem, and it seems like such a simple thing to do -- I can't even claim the interface, or set the alt-interface, or anything like that, because I have to set the configuration first.  What am I missing?  (if it matters: this is on WinXP)</p>