动态配置 MSI-X

Windows Vista Service Pack 1(SP1)、Windows Server 2008 及更高版本的作系统支持动态修改 MSI-X 中断消息的属性。 PCI 3.0规范定义了MSI-X。PCI总线驱动程序公开GUID_MSIX_TABLE_CONFIG_INTERFACE接口,允许PCI设备的驱动程序修改总线硬件中断表中的设置。

驱动程序通过向总线驱动程序发送 IRP_MN_QUERY_INTERFACE 请求来使用接口, InterfaceType 参数等于GUID_MSIX_TABLE_CONFIG_INTERFACE。 总线驱动程序提供指向 PCI_MSIX_TABLE_CONFIG_INTERFACE 结构的指针,该结构提供指向修改中断表的三个例程的指针:

默认情况下,将配置中断表,以便第一个条目具有消息 ID 为零,第二个条目具有消息 ID 1,依此方式。 如果表项数超过消息数,则为每个附加表项分配消息 ID 为零。 (消息 ID 是描述驱动程序消息触发中断的 IO_INTERRUPT_MESSAGE_INFO 结构中 MessageInfo 成员的中断条目索引。IoConnectInterruptEx 例程提供指向该结构的指针。)