Fallback method for retrieving product name for USB devices

We have retired our old USB kext and reimplemented our new USB stack using the IOUSBHost API and the VM DeviceAccess entitlement in our product. Everything is going fine...except for this one edge case.

We have a USB device that does not have a String Descriptor for the Product name. Apparently some USB devices will report an iProduct of 0 in their Device Descriptor, therefore Product String Descriptor failing.

If I look at the output from system_profiler SPUSBDataType or ioreg -p IOUSB -l with the device attached, I can see that there is no Product name anywhere. I can combine the output of the two commands to narrow down the device based on its serial number.

System profiler snippet:

Miscellaneous Device:
Product ID: 0x0990
Vendor ID: 0x046d (Logitech Inc.)
Version: 0.08
Serial Number: 1345602E
Speed: Up to 480 Mb/s
Location ID: 0x14110000 / 21
Current Available (mA): 500
Current Required (mA): 500
Extra Operating Current (mA): 0

IOReg snippet:

  |   +-o IOUSBHostDevice@14110000  <class AppleUSBDevice, id 0x100004897, registered, matched, active, busy 0 (4 ms), retain 20>
  |       {
  |         "sessionID" = 62015500304018
  |         "idProduct" = 2448
  |         "iManufacturer" = 0
  |         "bDeviceClass" = 239
  |         "bMaxPacketSize0" = 64
  |         "bcdDevice" = 8
  |         "iProduct" = 0
  |         "iSerialNumber" = 2
  |         "bNumConfigurations" = 1
  |         "Bus Power Available" = 250
  |         "USB Address" = 21
  |         "Built-In" = No
  |         "locationID" = 336658432
  |         "bDeviceSubClass" = 2
  |         "bcdUSB" = 512
  |         "kUSBSerialNumberString" = "1345602E"
  |         "PortNum" = 1
  |         "non-removable" = "no"
  |         "AppleUSBAlternateServiceRegistryID" = 4294985877
  |         "bDeviceProtocol" = 1
  |         "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBHostFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
  |         "IOPowerManagement" = {"DevicePowerState"=0,"CurrentPowerState"=3,"CapabilityFlags"=65536,"MaxPowerState"=4,"DriverPowerState"=3}
  |         "kUSBCurrentConfiguration" = 1
  |         "Device Speed" = 2
  |         "idVendor" = 1133
  |         "IOGeneralInterest" = "IOCommand is not serializable"
  |         "USB Serial Number" = "1345602E"
  |         "IOClassNameOverride" = "IOUSBDevice"
  |       }

The solution I'm looking for is a fallback method to read the product name "QuickCam Pro 9000", as this is the string reported on other operating systems. I know a fallback is possible on at least Linux, using a table in /usr/share/misc/usb.ids.

Is there any macOS API or command we can use to get the Product string for such devices?