Поделиться через


Требования к прерываниям 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 или более