Requisitos de interrupção do VMQ

Um driver de miniporta que dá suporte à funcionalidade de VMQ (fila de máquina virtual) também deve dar suporte aos seguintes requisitos de alocação de interrupção:

  • O driver de miniporta deve dar suporte a MSI-X. O driver deve definir o sinalizador NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED no membro SupportedQueueProperties da estrutura NDIS_RECEIVE_FILTER_CAPABILITIES .

    O driver retorna essa estrutura na estrutura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES que o driver usa em sua chamada para a função NdisMSetMiniportAttributes .

  • O driver de miniporto deve chamar a função NdisGetRssProcessorInformation para obter informações do processador para alocar vetores de interrupção. Ele não deve contar com chaves do Registro ou informações obtidas de outras fontes para alocação de interrupção.

    NdisGetRssProcessorInformation retorna informações sobre o conjunto de processadores que um driver de miniporto pode usar para RSS e VMQ. Essas informações estão contidas em uma estrutura NDIS_RSS_PROCESSOR_INFO .

  • O driver de miniporta deve alocar apenas um vetor de interrupção para cada processador especificado na estrutura NDIS_RSS_PROCESSOR_INFO .

    O driver de miniporta não deve alocar mais do que dois vetores de interrupção para outros eventos que não estão relacionados a operações de envio ou recebimento de pacotes. Por exemplo, o driver pode alocar um IDT para eventos de status de link.

  • O driver de miniporta deve dar suporte ao número mínimo de vetores de interrupção MSI-X, conforme definido na tabela a seguir:

    Número de filas Número mínimo de vetores de interrupção MSI-X necessários

    1–16

    1–16

    17–64

    16–32

    65 ou mais

    32 ou mais