public static extern MobileImageMounterError mobile_image_mounter_upload_image(MobileImageMounterClientHandle client, [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string imageType, uint imageSize, byte[] signature, ushort signatureSize, MobileImageMounterUploadCallBack uploadCallBack, System.IntPtr userdata);
 /// <summary>
 /// Uploads an image with an optional signature to the device.
 /// </summary>
 /// <param name="client">
 /// The connected mobile_image_mounter client.
 /// </param>
 /// <param name="image_type">
 /// Type of image that is being uploaded.
 /// </param>
 /// <param name="image_size">
 /// Total size of the image.
 /// </param>
 /// <param name="signature">
 /// Buffer with a signature of the image being uploaded. If
 /// NULL, no signature will be used.
 /// </param>
 /// <param name="signature_size">
 /// Total size of the image signature buffer. If 0, no
 /// signature will be used.
 /// </param>
 /// <param name="upload_cb">
 /// Callback function that gets the data chunks for uploading
 /// the image.
 /// </param>
 /// <param name="userdata">
 /// User defined data for the upload callback function.
 /// </param>
 /// <returns>
 /// MOBILE_IMAGE_MOUNTER_E_SUCCESS on succes, or a
 /// MOBILE_IMAGE_MOUNTER_E_* error code otherwise.
 /// </returns>
 public virtual MobileImageMounterError mobile_image_mounter_upload_image(MobileImageMounterClientHandle client, string imageType, uint imageSize, byte[] signature, ushort signatureSize, MobileImageMounterUploadCallBack uploadCallBack, System.IntPtr userdata)
 {
     return(MobileImageMounterNativeMethods.mobile_image_mounter_upload_image(client, imageType, imageSize, signature, signatureSize, uploadCallBack, userdata));
 }