function getHidFeatureReport(device, deviceDesc, reportId, length, callback) {
  // TODO(benvanik): pass in as an argument?
  var interfaceNumber =
      deviceDesc.configurations[0].interfaces[0].interfaceNumber;
  chrome.usb.controlTransfer(device, {
    requestType: 'class',
    recipient: 'interface',
    direction: 'in',
    request: 0x01,
    value: 0x0300 | reportId,
    index: interfaceNumber,
    length: length
  }, function(info) {
    if (info.resultCode) {
      var e = new Error('Error getting HID feature report: ' + info.resultCode);
      e.code = info.resultCode;
      callback(null, e);
      return;
    }
    callback(new Uint8Array(info.data), undefined);
  });
}
Gets a HID feature report.
@param {!Object} device Chrome device handle.
@param {!DeviceDescriptor} deviceDesc Device descriptor.
@param {number} reportId Report ID.
@param {number} length Report length.
@param {!function(Uint8Array, Error=)} callback Callback. Receives the report
    data or an error.