Adjuntar un módulo de filtro
Para iniciar el proceso de inserción de un módulo de filtro en una pila de controladores, NDIS llama a la función FilterAttach del controlador de filtro. Al principio de la ejecución en la función FilterAttach , el módulo de filtro entra en el estado Attaching . Para obtener más información sobre cómo adjuntar un módulo de filtro a una pila de controladores, consulte Inicio de una pila de controladores.
Un controlador de filtro usa el identificador , que NDIS pasa en el parámetro NdisFilterHandle de FilterAttach en todas las llamadas de función NdisXxx futuras que hacen referencia a este módulo de filtro. Estas funciones incluyen indicaciones de estado, solicitudes de envío, indicaciones de recepción y solicitudes de OID.
Mientras un módulo de filtro está en estado Attaching(Adjuntar ), el controlador:
Crea un área de contexto para el módulo de filtro y asigna grupos de búferes y otros recursos específicos del módulo de filtro. Para obtener más información sobre los grupos de búferes, consulte Administración del búfer de controladores de filtro.
Llama a la función NdisFSetAttributes mediante el valor NdisFilterHandle que NDIS pasó a FilterAttach. El parámetro FilterModuleContext de NdisFSetAttributes especifica el área de contexto del controlador de filtro para este módulo de filtro. NDIS pasa este área de contexto a las funciones FilterXxx del controlador de filtro.
Opcionalmente, lee los parámetros de configuración de este módulo de filtro del Registro. Para obtener más información, vea Obtener acceso a la información de configuración de un controlador de filtro.
Si las operaciones anteriores se completaron correctamente, el módulo de filtro se encuentra en estado Pausado .
Si se produjo un error en las operaciones anteriores, el controlador de filtro debe liberar los recursos asignados en la función FilterAttach y devolver el módulo de filtro al estado Desasociado .
Devuelve NDIS_STATUS_SUCCESS o un código de error adecuado. Si el controlador devuelve un código de error, NDIS finaliza la pila del controlador.
Nota El Registro puede contener una marca , que especifica que un módulo de filtro es opcional. Si un módulo de filtro opcional no se asocia, NDIS no finaliza el resto de la pila de controladores.
Un controlador de filtro no puede realizar solicitudes de envío, indicar datos recibidos, realizar solicitudes de OID o realizar indicaciones de estado del estado de conexión . Las operaciones de envío y recepción se admiten en los estados En ejecución y Pausa. Las solicitudes de OID y las indicaciones de estado se admiten en los estados Pausado, Reinicio, En ejecución y Pausa .
NDIS llama a la función FilterDetach para desasociar un módulo de filtro que NDIS adjunta con FilterAttach. Para obtener más información, consulte Desasociación de un módulo de filtro.