Overview of NDIS MSI-X

Message-signaled interrupts (MSIs) provide an alternative to traditional line-based interrupts that network devices and their miniport drivers can use. Starting with Windows Vista, the operating system supports two types of MSIs: PCI V2.2 MSI and PCI V3.0 MSI-X.

Miniport drivers that support MSI-X can specify an interrupt affinity, which is a subset of central processing units (CPUs) that the drivers' message interrupt service routines run on. You can specify the interrupt affinity for each MSI-X message--for example, you can specify interrupt affinities on computers with Non-Uniform Memory Access (NUMA) architecture in terms of the "nearness" of their device to certain CPUs.

MSI-X support can provide significant performance benefits, especially for network interface cards (NICs) that support receive side scaling (RSS). For more information about receive side scaling, see Receive Side Scaling.

For more information about line-based interrupts, see Managing Interrupts.

This section includes:

MSI-X Initialization

Handling an MSI Interrupt

Synchronizing with an MSI Interrupt

Changing the CPU Affinity of MSI-X Table Entries