Inicio de una pila de controladores
Una vez que el sistema detecta un dispositivo de red, el sistema inicia una pila de controladores NDIS para el dispositivo. El dispositivo puede ser un dispositivo virtual o un dispositivo físico. En cualquier caso, una operación de inicio de pila de controladores continúa de la siguiente manera:
El sistema carga e inicializa los controladores si aún no están cargados.
No carga los controladores en ningún orden determinado.
El sistema llama a la función DriverEntry de cada controlador.
Después de que DriverEntry devuelva:
- El adaptador de minipuerto para el dispositivo está en estado Detenido.
- Los módulos de filtro están en estado Desasociado.
- El enlace de protocolo está en estado Unbound.
El sistema solicita a NDIS que inicie el adaptador de minipuerto.
Para inicializar el adaptador de minipuerto, NDIS llama a la función MiniportInitializeEx del controlador de miniporte. Si MiniportInitializeEx se realiza correctamente, el adaptador de minipuerto entra en estado Pausado.
NDIS adjunta los módulos de filtro, empezando por el módulo más cercano al controlador de miniporte y progresando hasta la parte superior de la pila de controladores.
Para solicitar al controlador que adjunte un módulo de filtro a la pila de controladores, NDIS llama a la función FilterAttach del controlador de filtro. Si cada operación de asociación se realiza correctamente, el módulo de filtro entra en estado Pausado.
Después de que todos los controladores subyacentes estén en estado Pausado, NDIS llama a la función ProtocolBindAdapterEx del controlador de protocolo.
A continuación, el enlace del controlador de protocolo entra en el estado De apertura. El controlador de protocolo llama a la función NdisOpenAdapterEx para abrir el enlace con el adaptador de miniport.
NDIS asigna los recursos necesarios para el enlace y llama a la función ProtocolOpenAdapterCompleteEx del controlador de protocolo.
El enlace entra en estado Pausado.
Para completar la operación de enlace, el controlador de protocolo llama a la función NdisCompleteBindAdapterEx .
NDIS reinicia la pila de controladores. Para obtener más información sobre cómo reiniciar la pila de controladores, consulte Reinicio de una pila de controladores.