我使用需要 256 字节 TLP 有效负载大小的 PCIe 板。我的 CPU 支持(Core i7-3930K)和英特尔主板,DX79SR 在 BIOS 中不提供 TLP 有效负载大小设置。默认情况下,最大 TLP 有效负载为 128 字节,我需要将其更改为 256 字节,无需 BIOS。我找到了在 Windows 中显示此值的 PCIUtils 软件,但它是一个多用途的便携式软件,它太复杂了,无法找到我需要的东西。
英特尔文档描述了我需要在 CPU I/O 寄存器中设置的值,还有另一个文档说 I/O 位置是 C8Fh 和 CFCh。
这就是我卡住的地方,如果我想设置这些寄存器,我不知道从哪里开始。我是一位经验丰富的 Windows S/W 开发人员,但我从未处理过驱动程序。我确实有这个 PCIe 板驱动程序的源代码,我可以修改、构建和运行,但我不知道如何将数据写入 Intel CPU 的 I/O 寄存器。我发现 _outp() 函数在用户模式下不起作用。
请指出我从哪里开始,无论是从可执行文件(更简单)还是驱动程序。如果我没记错的话,我认为我需要做的就是从 I/O 端口 C8Fh 和 CFCh 读/写。现在是 Windows XP 32 位,Win7 x64 将在以后,Visual Studio 2010 C++ 或 WDK。