pci设备驱动模块包括:设备初始化模块,设备加载模块,设备释放模块,设备卸载模块,数据和控制模块,中断处理模块等。每类pci设备驱动都会有一个struct pci_device_id 设备id表,表中的vendor,device表示着厂商ID和厂商设备ID,如果这两个成员不能区分设备,那么就会用subverdor,subdevice来区分,subxxx分别对应的是该设备是否有别名,绝大多数设备是不需要的。class,class_mask分别对应的是该pci设备属于哪个设备:比如说,属于网络,块设备。driver_data是属于该设备的私有数据,每个设备都不一样。