+ break;
+ }
+ break;
+
+ case PCI_CLASS_DISPLAY_CTLR:
+ switch (Device->PciConfig.SubClass)
+ {
+ case PCI_SUBCLASS_VID_VGA_CTLR:
+ Description = L"VGA display controller";
+ break;
+
+ case PCI_SUBCLASS_VID_XGA_CTLR:
+ Description = L"XGA display controller";
+ break;
+
+ case PCI_SUBLCASS_VID_3D_CTLR:
+ Description = L"Multimedia display controller";
+ break;
+
+ default:
+ Description = L"Other display controller";
+ break;
+ }
+ break;
+
+ case PCI_CLASS_MULTIMEDIA_DEV:
+ switch (Device->PciConfig.SubClass)
+ {
+ case PCI_SUBCLASS_MM_VIDEO_DEV:
+ Description = L"Multimedia video device";
+ break;
+
+ case PCI_SUBCLASS_MM_AUDIO_DEV:
+ Description = L"Multimedia audio device";
+ break;
+
+ case PCI_SUBCLASS_MM_TELEPHONY_DEV:
+ Description = L"Multimedia telephony device";
+ break;
+
+ default:
+ Description = L"Other multimedia device";
+ break;
+ }
+ break;
+
+ case PCI_CLASS_MEMORY_CTLR:
+ switch (Device->PciConfig.SubClass)
+ {
+ case PCI_SUBCLASS_MEM_RAM:
+ Description = L"PCI Memory";
+ break;
+
+ case PCI_SUBCLASS_MEM_FLASH:
+ Description = L"PCI Flash Memory";
+ break;
+
+ default:
+ Description = L"Other memory controller";
+ break;
+ }
+ break;
+
+ case PCI_CLASS_BRIDGE_DEV:
+ switch (Device->PciConfig.SubClass)
+ {
+ case PCI_SUBCLASS_BR_HOST:
+ Description = L"PCI-Host bridge";
+ break;
+
+ case PCI_SUBCLASS_BR_ISA:
+ Description = L"PCI-ISA bridge";
+ break;
+
+ case PCI_SUBCLASS_BR_EISA:
+ Description = L"PCI-EISA bridge";
+ break;
+
+ case PCI_SUBCLASS_BR_MCA:
+ Description = L"PCI-Micro Channel bridge";
+ break;
+
+ case PCI_SUBCLASS_BR_PCI_TO_PCI:
+ Description = L"PCI-PCI bridge";
+ break;
+
+ case PCI_SUBCLASS_BR_PCMCIA:
+ Description = L"PCI-PCMCIA bridge";
+ break;
+
+ case PCI_SUBCLASS_BR_NUBUS:
+ Description = L"PCI-NUBUS bridge";
+ break;
+
+ case PCI_SUBCLASS_BR_CARDBUS:
+ Description = L"PCI-CARDBUS bridge";
+ break;
+
+ default:
+ Description = L"Other bridge device";
+ break;
+ }
+ break;
+
+ case PCI_CLASS_SIMPLE_COMMS_CTLR:
+ switch (Device->PciConfig.SubClass)
+ {
+
+ default:
+ Description = L"Communication device";
+ break;
+ }
+ break;
+
+ case PCI_CLASS_BASE_SYSTEM_DEV:
+ switch (Device->PciConfig.SubClass)
+ {
+
+ default:
+ Description = L"System device";
+ break;
+ }
+ break;
+
+ case PCI_CLASS_INPUT_DEV:
+ switch (Device->PciConfig.SubClass)
+ {
+
+ default:
+ Description = L"Input device";
+ break;
+ }
+ break;
+
+ case PCI_CLASS_DOCKING_STATION:
+ switch (Device->PciConfig.SubClass)
+ {
+
+ default:
+ Description = L"Docking station";
+ break;
+ }
+ break;
+
+ case PCI_CLASS_PROCESSOR:
+ switch (Device->PciConfig.SubClass)
+ {
+
+ default:
+ Description = L"Processor";
+ break;
+ }
+ break;
+
+ case PCI_CLASS_SERIAL_BUS_CTLR:
+ switch (Device->PciConfig.SubClass)
+ {
+ case PCI_SUBCLASS_SB_IEEE1394:
+ Description = L"FireWire controller";
+ break;
+
+ case PCI_SUBCLASS_SB_ACCESS:
+ Description = L"ACCESS bus controller";
+ break;
+
+ case PCI_SUBCLASS_SB_SSA:
+ Description = L"SSA controller";
+ break;
+
+ case PCI_SUBCLASS_SB_USB:
+ Description = L"USB controller";
+ break;
+
+ case PCI_SUBCLASS_SB_FIBRE_CHANNEL:
+ Description = L"Fibre Channel controller";
+ break;
+
+ default:
+ Description = L"Other serial bus controller";
+ break;