应使用hwinfo64读取current link width和current link speed字段,其值直接反映显卡真实启用的物理通道数与每通道速率;powershell调用msft_pciedevice类可交叉验证,gpu-z则需解析“bus interface”中“@”后的实际协商值。

要确认显卡当前实际占用的主板插槽物理带宽,不能只看设备管理器里“PCI Express x16”这种模糊描述——它只显示接口类型,不反映真实协商宽度与速率。必须绕过驱动抽象层,直接读取 PCIe 链路状态寄存器中的 Current Link Width 和 Current Link Speed 字段。
用 HWiNFO64 读取实时链路宽度与速率
HWiNFO64 是目前 Windows 下唯一能稳定访问 PCIe 配置空间链路状态寄存器的工具,其 Current Link Width 值即为显卡此刻真实启用的通道数。
访问 https://www.hwinfo.com/download/ 下载 HWiNFO64 最新便携版 ZIP 包,解压后右键 HWiNFO64.exe → 选择“以管理员身份运行”。
首次启动时勾选“Sensors only”,点击“Run”进入传感器视图;若界面过于冗长,可点击右上角齿轮图标 → 取消勾选“Show all sensors”以精简显示。
在左侧设备树中依次展开“PCI Bus” → 找到含 VEN_10DE(NVIDIA)或 VEN_1002(AMD)的条目,通常标注为“PCIe Graphics”或“dGPU”;注意避开芯片组直连的集成显卡(iGPU)或雷电控制器。
右侧信息栏中定位【Current Link Width】字段:若显示“16”,表示当前启用全部 16 条物理通道;若为“8”,则实为 PCIe x8 模式;【笔记本上出现 16 极大概率是误识别或外接显卡坞,非原生独显】。
同步查看【Current Link Speed】字段:数值为“32.0 GT/s”对应 PCIe 5.0,“16.0 GT/s”为 PCIe 4.0,“8.0 GT/s”为 PCIe 3.0;若 Speed 与 Width 不匹配预期(如 RTX 4090 显示 x8 @ 8.0 GT/s),说明存在严重降级。
用 PowerShell 调用内核级 WMI 类验证
该方法不依赖第三方传感器驱动,直接调用 Windows 内核 PCI 子系统暴露的 MSFT_PCIeDevice 类,结果具备内核级可信度,适合交叉验证。
右键“开始”按钮 → 选择“Windows 终端(管理员)”。
输入以下命令并回车执行:
Get-WmiObject -Namespace "RootWMI" -Class MSFT_PCIeDevice | Where-Object {$_.Name -match "GPU|Graphics|VEN_10DE|VEN_1002"} | Select-Object Name, CurrentLinkWidth, MaxLinkWidth
检查返回结果中 CurrentLinkWidth 列:若值为 16,且 MaxLinkWidth 同样为 16,则链路未降级;若 CurrentLinkWidth 小于 MaxLinkWidth(如 Current=8 / Max=16),说明硬件或 BIOS 限制导致通道被强制拆分。
注意:PowerShell 返回的 Name 字段可能包含多个设备,务必核对厂商 ID(VEN_10DE 或 VEN_1002)与设备位置(BDF 地址如 01:00.0),避免误读网卡或声卡。
用 GPU-Z 快速比对 Bus Interface 字段
GPU-Z 界面简洁,适合快速筛查,但需注意其“Bus Interface”字段是拼接字符串,必须拆解“@”符号前后两部分才能得出真实带宽。
从 TechPowerUp 官网下载 GPU-Z 2.68.0 免安装版,运行后自动加载显卡信息。
切换至“Advanced”选项卡 → 查看“PCI Express”区块下的“Link Width”和“Speed”两行数值,这与 HWiNFO64 的 Current Link Width/Speed 一致。
回到主界面“Graphics Card”选项卡 → 找到“Bus Interface”字段,例如显示“PCIe 5.0 x16 @ PCIe 4.0 x8”:其中“@”前是插槽理论规格,“@”后才是当前实际协商结果,【真正起作用的是“@”后面的部分】。
若此处显示“PCIe 4.0 x16 @ PCIe 3.0 x4”,说明显卡虽插在 x16 插槽,但因 M.2 SSD 占用通道或 BIOS 设置错误,实际仅跑在 PCIe 3.0 x4 模式下。











