Compartir vía


Estados de módulo de un controlador de filtro

Un controlador de filtro NDIS debe admitir los siguientes estados operativos para cada módulo de filtro (instancia de un controlador de filtro) que administra el controlador:

  • Separada

  • asociación

  • En pausa

  • Reiniciar

  • En ejecución

  • Pausando

En la ilustración siguiente se muestran las relaciones entre estos estados.

Diagrama que muestra las relaciones entre las operaciones en un controlador de filtro NDIS.

A continuación se definen los estados del módulo de filtro:

Separada
El estado Desasociado es el estado inicial de un módulo de filtro. Cuando un módulo de filtro está en este estado, NDIS puede llamar a la función FilterAttach del controlador de filtro para asociar el módulo de filtro a la pila de controladores. Cuando NDIS llama a la función FilterAttach de un controlador de filtro, el módulo de filtro entra en el estado Attaching. Si se produce un error en la operación de asociación, el módulo de filtro vuelve al estado Desasociado. Cuando el módulo está en estado Pausado y NDIS llama a la función FilterDetach , el módulo vuelve al estado Desasociado.

asociación
Cuando un módulo de filtro está en estado Attaching ( Adjuntar ), un controlador de filtro se prepara para adjuntar el módulo a la pila de controladores. Una vez completada la preparación del módulo de filtro, el módulo de filtro entra en estado Pausado. Si se produce un error (por ejemplo, porque los recursos necesarios no están disponibles), el módulo de filtro vuelve al estado Desasociado.

Pausa
Cuando un módulo de filtro está en estado Pausado , el módulo de filtro no realiza operaciones de envío o recepción. Cuando un módulo de filtro está en el estado Attaching y FilterAttach se realiza correctamente, el módulo de filtro entra en estado Pausado . Cuando un módulo de filtro está en estado pausado y se completa la operación de pausa, el módulo de filtro entra en estado Pausado . Cuando un módulo de filtro está en estado Pausado y NDIS llama a la función FilterRestart del controlador de filtro, el módulo de filtro entra en el estado Reinicio . Cuando un módulo de filtro está en estado Pausado y NDIS llama al controlador FilterDetach del controlador, el módulo de filtro entra en estado Desasociado .

Reiniciar
En el estado Reinicio , un controlador de filtro completa las operaciones necesarias para reiniciar las operaciones de envío y recepción de un módulo de filtro. Cuando un módulo de filtro está en estado Pausado y NDIS llama a la función FilterRestart del controlador, un módulo de filtro entra en el estado Reinicio. Si se produce un error en el reinicio, el módulo de filtro vuelve al estado Pausado. Si el reinicio se realiza correctamente, el módulo de filtro entra en estado En ejecución.

En ejecución
En estado En ejecución , un controlador de filtro realiza el procesamiento normal de envío y recepción de un módulo de filtro. Cuando el módulo de filtro está en estado De reinicio y el controlador está listo para realizar operaciones de envío y recepción, el módulo de filtro entra en estado En ejecución.

Pausa
En el estado Pausa , un controlador de filtro completa las operaciones necesarias para detener las operaciones de envío y recepción de un módulo de filtro. El controlador de filtro debe esperar a que se completen todas sus solicitudes de envío pendientes y que NDIS devuelva todas sus indicaciones de recepción pendientes. Cuando un módulo de filtro está en estado En ejecución y NDIS llama a la función FilterPause del controlador, el módulo de filtro entra en estado de pausa. Un controlador de filtro no puede producir un error en una operación de pausa. Una vez completada la operación de pausa, el módulo de filtro entra en estado Pausado.

Administración de pila de controladores

Controladores de filtro NDIS