Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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).
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.