The bNumEndpoints field is a number value from the CCID USB descriptor: Number of endpoints used by this interface (excluding endpoint zero).
bNumEndpoints | # | % |
---|---|---|
3 | 228 | 89.76 % |
2 | 16 | 6.30 % |
0 | 6 | 2.36 % |
1 | 4 | 1.57 % |
According to the CCID specification: For Integrated Circuit(s) Cards Interface Devices (CCID)
- 02h uses bulk-IN and bulk-OUT
- 03h uses bulk-IN, bulk-OUT and interrupt –IN
So the possible values are 2 or 3 for a CCID device.
According to the ICCD specification:
- 00h does not use further endpoint
- 01h uses interrupt-IN
- 02h uses bulk-IN and bulk-OUT
- 03h uses bulk-IN, bulk-OUT and interrupt –IN
Devices with bNumEndpoints = 0
- Aktiv Co., ProgramPark Rutoken Magistra
- BIFIT iBank2Key
- Gemalto PDT
- OCS ID-One Cosmo Card USB Smart Chip Device
- Philips Semiconductors JCOP41V221
- SchlumbergerSema SchlumbergerSema Cyberflex Access
Devices with bNumEndpoints = 1
- Giesecke & Devrient GmbH Star Sign Card Token 350 (ICCD)
- Giesecke & Devrient GmbH Star Sign Card Token 550 (ICCD)
- KEBTechnology KONA USB SmartCard
- Philips Semiconductors SmartMX Sample
To know if a device is a CCID or ICCD device use the bInterfaceProtocol field. We find again the 10 ICCD devices as found in bInterfaceProtocol. But we note that there is no matching between bNumEndpoints = 0 or 1 and Version A or B of ICCD protocol.