How Firmware update works in Config api client?

I’m working with the Milestone MIP SDK Config API Client sample and noticed that Hardware items expose an “Update firmware” method that can be invoked via IConfigurationService.InvokeMethod(). When triggered, the server returns an InvokeInfo item containing a single input field called Storage ID.

I understand the general InvokeMethod pattern — the server drives the UI dynamically and we pass the filled InvokeInfo back to trigger the actual operation. What I’m unclear about is the firmware file delivery side.

My questions:

  1. What exactly is the Storage ID expected here — is it the GUID of a Recording Server Storage, or something else entirely (e.g. a session upload ID)?

  2. If I have a firmware .bin or .zip file on my local system, what is the correct way to make it available to the VMS before calling InvokeMethod? Is there a separate API call to upload the file first, or does the Recording Server need to have the file placed in a specific folder on the server machine?

  3. Is there a UploadFirmware or similar method that should be called before UpdateFirmware to get a valid Storage ID back?

  4. Does this work for all hardware drivers, or only for specific camera models/drivers that support firmware upgrade through the MIP SDK?

Please explore the Configuration API firmware update sample, it shows the usage of this.