Compartilhar via


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:

  1. 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.

  2. 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.
  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. Para concluir a operação de associação, o driver de protocolo chama a função NdisCompleteBindAdapterEx .

  8. 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.