If you're referring to the interfaces and endpoints of the USB device itself, then you'd need to start looking at:
IOUSBDeviceInterface and/or IOUSBDevice
In terms of block devices, I've never really deals with them, only just comms devices such as TTY devices or network devices.
Either way, through IOUSBDeviceInterface and/or IOUSBDevice
You can pretty much get everything you want from the EndPoint descriptors.