Требования к прерываниям VMQ
Драйвер мини-порта, поддерживающий функциональность очереди виртуальных машин (VMQ), также должен поддерживать следующие требования к выделению прерываний:
Драйвер мини-порта должен поддерживать MSI-X. Драйвер должен установить флаг NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED в элементе SupportedQueueProperties структуры NDIS_RECEIVE_FILTER_CAPABILITIES .
Драйвер возвращает эту структуру в NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES структуре, которая используется драйвером в вызове функции NdisMSetMiniportAttributes .
Драйвер мини-порта должен вызвать функцию NdisGetRssProcessorInformation , чтобы получить сведения о процессоре для выделения векторов прерываний. Он не должен полагаться на разделы реестра или сведения, полученные из других источников, для выделения прерываний.
NdisGetRssProcessorInformation возвращает сведения о наборе процессоров, которые драйвер мини-порта может использовать для RSS и VMQ. Эти сведения содержатся в структуре NDIS_RSS_PROCESSOR_INFO .
Драйвер мини-порта должен выделять только один вектор прерывания для каждого процессора, указанного в структуре NDIS_RSS_PROCESSOR_INFO .
Драйвер мини-порта должен выделять не более двух векторов прерываний для других событий, которые не связаны с операциями отправки или получения пакетов. Например, драйвер может выделить IDT для событий состояния ссылки.
Драйвер мини-порта должен поддерживать минимальное количество векторов прерываний MSI-X, как определено в следующей таблице:
Количество очередей Минимальное количество обязательных векторов прерываний MSI-X 1–16
1–16
17–64
16–32
65 и более
32 или более