code: def set_descriptor(dev, desc, desc_type, desc_index, wIndex = None):
      r
      wValue = desc_index | (desc_type << 8)
  
      bmRequestType = util.build_request_type(
                          util.CTRL_OUT,
                          util.CTRL_TYPE_STANDARD,
                          util.CTRL_RECIPIENT_DEVICE)
  
      dev.ctrl_transfer(
          bmRequestType = bmRequestType,
          bRequest = 0x07,
          wValue = wValue,
          wIndex = wIndex,
          data_or_wLength = desc)
docs: r"""Update an existing descriptor or add a new one.
  
      dev is the Device object to which the request will be
      sent to.
  
      The desc parameter is the descriptor to be sent to the device.
      desc_type and desc_index are the descriptor type and index,
      respectively. wIndex index is used for string descriptors
      and represents the Language ID. For other types of descriptors,
      it is zero.