PCI Express (PCIe) 总线无法表示容器 ID。 Windows 操作系统依赖于 PCI 总线驱动程序在确定 PCIe 设备的设备容器分组时返回的可移动功能。
PCI 总线驱动程序通过读取以下 PCIe 寄存器位来确定 PCIe 设备是可移动的。
PCIe 注册 | 字节偏移量 | 位位置 | 说明 |
---|---|---|---|
PCI Express 功能 |
0x02 |
8 - 已实现槽 |
当设置为 1 时,此位值指示与此端口关联的 PCIe 链路已连接到物理槽,而不是连接到集成组件。 |
槽功能 |
0x14 |
6 - 支持 Hot-Plug |
当设置为 1 时,此位值表示此槽可以支持热插拔操作。 |
如果满足以下两个条件,PCI 总线驱动程序会将 PCIe 设备标记为可移动:
槽实现位设置为 1。
支持热插拔的位设置为 1:
用于设置这些寄存器位的机制因 PCIe 芯片集版本和制造商而异。 例如,某些芯片集允许固件对这些位进行编程,而其他芯片集要求将物理引脚绑在电压充电连接 (Vcc) 或地 (GND) 。
请注意,如果设备在 ACPI 命名空间中实现 _EJ0 方法,ACPI 驱动程序会将设备标记为可移动。 无论槽“已实现”或“支持Hot-Plug位”的设置如何,都会发生这种情况。 有关详细信息,请参阅 PCI Express Hot-Plug和 Windows 的固件支持 白皮书。
有关 PCIe 接口的详细信息,请参阅 PCIe 基本 规范。