Drivers de miniporta

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

  • Gerenciando uma NIC (cartão de interface de rede), incluindo o envio e o recebimento de dados por meio da NIC.

  • Interfacing 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 miniporto 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 suas próprias finalidades, ou em nome de drivers de nível superior, para acessar o driver de miniporte.

Observação

Para obter mais informações sobre a pilha de driver NDIS e um diagrama mostrando a relação entre todos os quatro tipos de driver NDIS, consulte Pilha de Driver NDIS.

As seguintes operações de envio e recebimento ilustram a interação de drivers de miniporta com o NDIS e com 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 miniporto chamando a função MiniportXxx apropriada exportada pelo driver de miniporto. Em seguida, o driver de miniporta encaminha o pacote para a NIC para transmissão chamando as funções NdisXxx apropriadas.

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

Drivers de miniporta sem conexão e Connection-Oriented

O NDIS dá suporte a drivers de miniporta para ambientes sem conexão e ambientes orientados para conexão.

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

Nota Todos os drivers NDIS 6.0 e posteriores são desserializados.

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

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

Os drivers de miniporto orientados para conexão controlam NICs para mídia de rede orientada a conexão, como ISDN. Os drivers de miniporto orientados para 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 de entrada.

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

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

Por meio de sua borda inferior não NDIS, um motorista de miniporta usa a interface de classe para um barramento, como o Barramento Serial Universal (USB) para controlar um dispositivo no barramento. O driver de miniporta se comunica com o dispositivo enviando IRPs (pacotes de solicitação de E/S) para o barramento ou diretamente para dispositivos remotos que estão anexados ao barramento. Em sua borda superior, o driver de miniporto expõe uma interface de driver de miniporto NDIS padrão, que permite que o driver de miniporto se comunique com drivers NDIS excessivamente.

Drivers de miniporta NDIS

Referência do driver de miniporto NDIS