PCI devices report their class and subclass among other parameters (for recognition before the OS figures out which driver to use for them). The device class 0x02 "Network controller" has these subclasses:
- 0x00 – Ethernet network controller
- 0x01 – Token Ring network controller
- 0x02 – FDDI network controller
- 0x80 – Some other type of network controller
When the initial list of subclasses was decided on, Ethernet was a fairly popular communications technology and got its own subclass from day one. But Wi-Fi came around quite a bit later – since it didn't have a dedicated subclass in this list, many Wi-Fi adapters simply use the 0x80 "Other network controller" subclass.
In PCI 3.0 there is a 0x0D "Wireless controller" class with subclasses more suitable for Wi-Fi:
- 0x00…0x12 – subclasses for non-Wi-Fi wireless (Bluetooth, IrDA, etc.)
- 0x20 – 802.11a (5 GHz Wi-Fi) controller
- 0x21 – 802.11b (2.4 GHz Wi-Fi) controller
- 0x80 – Some other type of wireless controller
Presumably a modern dual 2.4 & 5 GHz adapter could flip a coin to choose between 0x20 or 0x21, or it could classify itself as 0x80 "some other subtype" again.
But because the class & subclass aren't really used for much else except OS driver lookup, it appears that many manufacturers never saw any reason to switch from the good old 0x0280 "Network controller: Other" device class.