Partilhar via


Drivers de miniport

Um miniport driver NDIS tem duas funções básicas:

  • Gerenciar uma placa de interface de rede (NIC), incluindo o envio e recebimento de dados através da NIC.

  • Interface com drivers de nível superior, como drivers de filtro, drivers intermediários e drivers de protocolo.

Um driver de miniporta se comunica com suas NICs e com drivers de nível superior por meio da biblioteca NDIS. A biblioteca NDIS exporta um conjunto completo de funções (NdisMXxx e outras funções NdisXxx ) que encapsulam todas as funções do sistema operacional que um driver de miniporta deve chamar. O driver de miniporta, por sua vez, deve exportar um conjunto de pontos de entrada (funções MiniportXxx ) que o NDIS chama para seus próprios fins, ou em nome de drivers de nível superior, para acessar o driver de miniporta.

Observação

Para obter mais informações sobre a stack de controladores NDIS e um diagrama mostrando a relação entre os quatro tipos de controladores NDIS, consulte NDIS Driver Stack.

As operações de envio e recebimento a seguir ilustram a interação dos drivers de miniporta com o NDIS e com os drivers de nível superior:

  • Quando um driver de transporte tem um pacote para transmitir, ele chama uma função NdisXxx exportada pela biblioteca NDIS. Em seguida, o NDIS passa o pacote para o driver de miniporta chamando a função MiniportXxx apropriada exportada pelo driver de miniporta. Em seguida, o driver da miniporta encaminha o pacote para a NIC para transmissão chamando as funções Ndis Xxx apropriadas.

  • Quando uma NIC recebe um pacote endereçado a si mesma, ela pode postar uma interrupção de hardware que é manipulada pelo NDIS ou pelo driver de miniporta da NIC. O NDIS notifica o driver de miniporta da NIC chamando a função MiniportXxx apropriada. O miniport driver configura a transferência de dados da NIC e, em seguida, indica a presença do pacote recebido aos drivers de nível superior associados chamando a função Ndis Xxx apropriada.

Drivers de miniporta e sem conexão Connection-Oriented

O NDIS suporta drivers de miniporta para ambientes sem conexão e ambientes orientados a conexão.

Os drivers de miniporta sem conexão controlam NICs para mídia de rede sem conexão, como Ethernet. Os drivers de miniporta sem conexão são ainda divididos em drivers desserializados e serializados.

Observação Todos os drivers NDIS 6.0 e posteriores são não serializados.

  • Os drivers desserializados serializam a operação de suas próprias funções MiniportXxx e enfileiram internamente todos os pacotes de envio recebidos. Isso resulta em um desempenho full-duplex significativamente melhor, desde que as seções críticas do driver (código que apenas um único thread de cada vez pode executar) sejam mantidas pequenas.

  • Os drivers serializados dependem do NDIS para serializar chamadas para suas funções MiniportXxx e gerenciar suas filas de envio.

Drivers de miniportas orientados a conexão gerem NICs para meios de rede orientados a conexão, como ISDN. Os drivers de miniporta orientados à conexão são sempre desserializados -- eles sempre serializam a operação de suas próprias funções MiniportXxx e enfileiram internamente todos os pacotes de envio recebidos.

Um driver de miniporta NDIS pode ter uma borda inferior não-NDIS (veja a figura a seguir).

Diagrama mostrando um driver de miniporta NDIS com uma extremidade inferior não-NDIS.

Através da sua extremidade inferior não-NDIS, um driver de miniport utiliza a interface de classe para um barramento, como o Universal Serial Bus (USB), para controlar um dispositivo no barramento. O driver da miniporta se comunica com o dispositivo enviando pacotes de solicitação de E/S (IRPs) para o barramento ou diretamente para dispositivos remotos conectados ao barramento. Na sua extremidade superior, o driver de miniporta expõe uma interface padrão de driver de miniporta NDIS, que permite que o driver de miniporta se comunique com drivers NDIS sobrejacentes.

Controladores Miniport NDIS

Referência do driver de miniporta NDIS