Iniciando uma pilha de driver
Depois que o sistema detecta um dispositivo de rede, o sistema inicia uma pilha de driver NDIS para o dispositivo. O dispositivo pode ser um dispositivo virtual ou um dispositivo físico. Em ambos os casos, uma operação de início de pilha de driver prossegue da seguinte maneira:
O sistema carregará e inicializará os drivers se eles ainda não estiverem carregados.
Ele não carrega os drivers em nenhuma ordem específica.
O sistema chama a função DriverEntry de cada driver.
Depois que DriverEntry retornar:
- O adaptador de miniporto para o dispositivo está no estado Parado.
- Os módulos de filtro estão no estado Desanexado.
- A associação de protocolo está no estado Unbound.
O sistema solicita que o NDIS inicie o adaptador de miniporte.
Para inicializar o adaptador de miniporto, o NDIS chama a função MiniportInitializeEx do driver de miniport. Se MiniportInitializeEx for bem-sucedido, o adaptador de miniporte entrará no estado Pausado.
O NDIS anexa os módulos de filtro, começando com o módulo mais próximo do driver de miniporte e progredindo para a parte superior da pilha do driver.
Para solicitar que o driver anexe um módulo de filtro à pilha de driver, o NDIS chama a função FilterAttach de um driver de filtro. Se cada operação de anexação for bem-sucedida, o módulo de filtro entrará no estado Pausado.
Depois que todos os drivers subjacentes estiverem no estado Pausado, o NDIS chamará a função ProtocolBindAdapterEx do driver de protocolo.
Em seguida, a associação do driver de protocolo entra no estado De abertura. O driver de protocolo chama a função NdisOpenAdapterEx para abrir a associação com o adaptador de miniport.
O NDIS aloca os recursos necessários para a associação e chama a função ProtocolOpenAdapterCompleteEx do driver de protocolo.
A associação entra no estado Pausado.
Para concluir a operação de associação, o driver de protocolo chama a função NdisCompleteBindAdapterEx .
O NDIS reinicia a pilha do driver. Para obter mais informações sobre como reiniciar a pilha de driver, consulte Reiniciar uma pilha de driver.