动态配置 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 例程提供指向此结构的指针。)