Sdílet prostřednictvím


Dynamická konfigurace MSI-X

Operační systémy Windows Vista Service Pack 1 (SP1), Windows Server 2008 a novější podporují dynamické úpravy vlastností zpráv přerušení MSI-X. (Specifikace PCI 3.0 definovaná MSI-X.) Ovladač sběrnice PCI zveřejňuje rozhraní GUID_MSIX_TABLE_CONFIG_INTERFACE, které umožňuje ovladačům zařízení PCI upravit nastavení v tabulce přerušení hardwaru sběrnice.

Ovladače používají rozhraní odesláním požadavku IRP_MN_QUERY_INTERFACE na ovladač sběrnice s parametrem InterfaceType , který se rovná GUID_MSIX_TABLE_CONFIG_INTERFACE. Řidič sběrnice poskytuje ukazatel na strukturu PCI_MSIX_TABLE_CONFIG_INTERFACE , která poskytuje ukazatele na tři rutiny, které upravují tabulku přerušení:

  • SetTableEntry přiřadí ID zprávy k položce hardwarové tabulky.

  • MaskTableEntry maskuje přerušení odpovídající položce hardwarové tabulky.

  • UnmaskTableEntry unmaskuje přerušení odpovídající položce hardwarové tabulky.

Ve výchozím nastavení je tabulka přerušení nakonfigurována tak, aby první položka obsahuje ID zprávy nula, druhá položka má ID zprávy jedna atd. Pokud počet položek tabulky překročí počet zpráv, přiřadí se každé další položce tabulky nula. (ID zprávy je index pro položku přerušení v členu MessageInfo struktury IO_INTERRUPT_MESSAGE_INFO, která popisuje přerušení řízených zpráv. Rutina IoConnectInterruptEx poskytuje ukazatel na tuto strukturu.)