Compartilhar via


Suporte a placa de interface de rede

Este tópico descreve os tipos de NICs (Cartões de Interface de Rede) que um driver de miniporto NDIS pode gerenciar, bem como como os diferentes tipos de NICs afetam a maneira como um driver transfere dados de rede.

Relatar o tipo de mídia de uma NIC ao NDIS

Para informar um tipo de mídia para uma NIC, um driver de miniporto passa um ponteiro para uma estrutura NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES no parâmetro MiniportAttributes da função NdisMSetMiniportAttributes. Um driver de miniporto chama NdisMSetMiniportAttributes de sua função MiniportInitializeEx durante a inicialização. Os drivers de miniport devem definir os atributos MiniportAttributes depois de definir os atributos de registro na estrutura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES e antes de definir quaisquer outros atributos. A definição dos atributos MiniportAttributes é obrigatória. O driver define o membro MediaType da estrutura NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES para o tipo de mídia apropriado ao definir os atributos MiniportAttributes .

Quando o driver de protocolo NDIS sobreposto chama NdisOpenAdapterEx para associar-se a um adaptador de miniporto especificado, fornece uma lista de tipos de meio nos quais pode operar. O NDIS usa as informações do driver de miniporto e do driver de protocolo para configurar uma associação. Essa associação fornece o caminho para transferir dados de rede para cima e para baixo na stack do driver.

Physical NICs

As etapas que um driver de miniporto conclui para inicializar um adaptador de miniporto e enviar e receber dados de rede podem depender dos recursos de um dispositivo físico, da seguinte maneira.

  • NDIS-WDM NICs

    Nas NICs NDIS-WDM, como as baseadas em USB, a maneira como o driver de miniporto gerencia a memória com DMA não importa para o NDIS e não é visível para ele.

  • Controladoras de rede com DMA mestre de barramento

    Essas NICs podem acessar diretamente a memória do host por meio de um controlador de DMA a bordo que gerencia a transferência de dados entre a rede e a memória do host sem usar a CPU do host.

    Para enviar, o driver de miniporta configura a NIC para mapear os buffers de saída. Em seguida, o driver de miniporto faz com que o dispositivo inicie sua transferência dessa memória. O controlador de DMA NIC transfere os dados da memória do sistema compartilhado para a rede e aciona a interrupção na CPU quando a transmissão é concluída. Para receber, o controlador de DMA transfere dados de entrada para a memória do host antes de notificar o host com uma interrupção.

    Uma NIC de DMA mestre de barramento normalmente tem um buffer circular integrado que o driver de miniporto mapeia para um conjunto de buffers na memória do sistema. Normalmente, a NIC pode ser programada para manipular com eficiência vários pacotes. Um driver de miniporto que gerencia essa NIC normalmente dá suporte a envios e recebimentos de vários pacotes porque a NIC pode lidar com vários pacotes com eficiência e, assim, melhorar sua taxa de transferência de E/S.

  • NICs de DMA não líderes

    Atualmente, as NICs DMA não-master incluem o seguinte:

    • NICs de DMA do sistema

      Um driver de miniporto que gerencia tal NIC usa o controlador DMA do sistema para gerenciar a transferência de dados de pacote de e para a rede. A transferência dos dados requer a cooperação da CPU do host.

NICs virtuais e miniportos

Em uma máquina virtual, os drivers de miniporto NDIS podem gerenciar recursos apenas de software como um miniporto virtual, ou podem gerenciar uma placa de rede virtual que representa os recursos de hardware. A tabela a seguir explica as diferenças entre um miniporto virtual e uma NIC virtual.

Attribute Virtual miniport Virtual NIC
Definition Um driver de miniport NDIS que faz o mapeamento para um dispositivo PnP enumerado por software. Uma NIC gerenciada pelo hipervisor do sistema operacional host. O hipervisor faz com que a máquina virtual pense que tem algum hardware, mas nenhum hardware desse tipo realmente existe no mundo físico.
Has interrupts No Yes
Pode usar o DMA No Yes
É criado ou destruído por... O sistema operacional convidado O sistema operacional do host
Pode alcançar fora de uma máquina virtual hóspede No Yes