Изменение привязки процессора для записей таблицы MSI-X
Драйверы минипорта NDIS 6.1 и более поздних версий, поддерживающие MSI-X, могут вызывать функцию NdisMConfigMSIXTableEntry, чтобы маскировать, снимать маску или сопоставлять записи таблицы MSI-X с сообщениями, назначенными устройством MSI-X. Драйверы минипорта, поддерживающие RSS, используют NdisMConfigMSIXTableEntry для изменения соответствия ЦП записей таблиц MSI-X во время выполнения.
NdisMConfigMSIXTableEntry — это оболочка для запроса GUID_MSIX_TABLE_CONFIG_INTERFACE. Драйверы минипорта могут вызвать функцию NdisMConfigMSIXTableEntry после того, как NDIS вызовет функцию MiniportInitializeEx и перед тем, как драйверы вернутся из функции MiniportHaltEx.
Мини-драйвер, который назначает запись таблицы MSI-X для каждой очереди RSS и имеет меньше очередей, чем число процессоров RSS, может добавлять дополнительные ресурсы сообщений MSI-X в функцию MiniportFilterRequirements. Дополнительные сведения об изменении назначенных ресурсов для устройства см. в разделе MSI-X "Фильтрация ресурсов".
Минипорт-драйвер может задать привязку ЦП ресурсов прерывания MSI-X таким образом, чтобы у устройства было по крайней мере одно сообщение MSI-X для каждого процессора RSS. Обратите внимание, что драйвер шины PCI сначала сопоставляет записи таблицы n MSI-X (где n — это количество записей таблицы MSI-X, о которых оборудование сетевого адаптера сообщило шине) с первыми n MSI-X сообщениями в измененных ресурсах. После вызова NDIS MiniportInitializeEx, когда драйвер минипорта изменяет целевой процессор определённой записи таблицы MSI-X, драйвер вызывает NdisMConfigMSIXTableEntry, чтобы сопоставить эту запись таблицы с сообщением MSI-X, которое уже имеет установленную привязку к нужному процессору.