The fw upgrade data is also sent using isochronous packets
Is the FW upgraded so often that anybody cares how long it takes? How big is the upgrade?
Are you using a custom Windows driver for all this?
WinUsb and a pair of bulk endpoints is the "greatest common denominator" for custom interfaces in the Windows world.
You could also just use Vendor-specific control transfers for the upgrade stuff.
This might be slower, but it means you don't need any other endpoints or descriptors.
The problem is, as far as I know, without a custom driver you only have WinUsb_ControlTransfer to send arbitrary control transfers.
Hmm, I've never tried, I wonder if you could bind a WinUsb driver to an interface without any endpoints?
I'll have to try that.