Partilhar via


Requisitos de interrupção do VMQ

Um driver de miniporta que ofereça suporte à funcionalidade de fila de máquina virtual (VMQ) também deve oferecer suporte aos seguintes requisitos para a alocação de interrupções:

  • O driver de miniporta deve suportar 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 miniporta deve chamar a função NdisGetRssProcessorInformation para obter informações do processador para alocar vetores de interrupção. Deve-se não depender de chaves do registro ou de informações obtidas de outras fontes para a alocação de interrupções.

    NdisGetRssProcessorInformation retorna informações sobre o conjunto de processadores que um driver de miniporta pode usar para RSS e VMQ. Esta informação está contida numa 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 estejam relacionados a operações de envio ou recebimento de pacotes. Por exemplo, o driver pode alocar um IDT para eventos de estado do link.

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

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

    1–16

    1–16

    17–64

    16–32

    65 ou mais

    32 ou mais