先说明一下xHCI对Slot的概念 XHCI对USBdevice需要管理,每个USBdevice单独的USBDeviceConext来描述,那么所有的USBdevice用一个DeviceConextArray来组织。既然是一个数组,那么用什么来索引DeviceContextArray钟的某个DeviceContext呢?另外DoorBellArray也是由一组寄存器组成,每个寄存器对应一个USBDevice。无论DoorBellArray或者DeviceContextArray中的每个entry都是对应独立的USB设备,因此定义DeviceSlot用来索引这些和USBDevice相关的一套数据结构。既然DeviceSlot是用来索引USBDevice相关的一套数据结构,那么DeviceSlotContext是一个描述USB设备全局相关的信息。例如,USB设备由几个endpoint,USB设备的速度,USB设备的地址信息等等。SloteContext可以作为Input也可以作为Output。当SlotContext作为DeviceContext结构体一部分时,SlotContext被称为OutputSlotContext。因为DeviceContext是由xHC构建输出给xHCI驱动软件的。当SlotContext作为命令参数一部分时,SlotContext作为InputContext结构体一部分传递给xHCI。SlotContext结构体定义如下: