Compartir a través de


FILTER_STATUS función de devolución de llamada (ndis.h)

La función FilterStatus indica los cambios de estado notificados por NDIS o un controlador subyacente.

Nota Debe declarar la función mediante el tipo FILTER_STATUS . Para obtener más información, consulte la sección Ejemplos siguientes.
 

Sintaxis

FILTER_STATUS FilterStatus;

void FilterStatus(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNDIS_STATUS_INDICATION StatusIndication
)
{...}

Parámetros

[in] FilterModuleContext

Identificador del área de contexto del módulo de filtro. El controlador de filtro creó e inicializó este área de contexto en la función FilterAttach .

[in] StatusIndication

Puntero a una estructura de NDIS_STATUS_INDICATION que contiene la información de estado.

Valor devuelto

None

Observaciones

FilterStatus es una función opcional. Si un controlador de filtro no usa indicaciones de estado, puede establecer el punto de entrada de esta función en NULL cuando llama a . Función NdisFRegisterFilterDriver .

Para determinar el estado del vínculo, use las indicaciones de estado de los controladores subyacentes en lugar de las consultas de OID. Estas indicaciones de estado mejorarán el rendimiento del sistema y evitarán posibles condiciones de carrera.

Normalmente, un controlador de filtro llama a la función NdisFIndicateStatus al final de su función FilterStatus para pasar la indicación de estado a los controladores de exceso.

Un controlador de filtro puede filtrar determinadas indicaciones de estado o modificar el estado indicado. Para filtrar una indicación de estado, el controlador simplemente no llama a NdisFIndicateStatus.

NDIS llama a FilterStatus en IRQL <= DISPATCH_LEVEL.

Ejemplos

Para definir una función FilterStatus , primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación a encontrar errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una función FilterStatus denominada "MyStatus", use el tipo FILTER_STATUS como se muestra en este ejemplo de código:

FILTER_STATUS MyStatus;

A continuación, implemente la función de la siguiente manera:

_Use_decl_annotations_
VOID
 MyStatus(
    NDIS_HANDLE  FilterModuleContext,
    PNDIS_STATUS_INDICATION  StatusIndication
    )
  {...}

El tipo de función FILTER_STATUS se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función FILTER_STATUS en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declarar funciones mediante tipos de roles de función para controladores NDIS.

Para obtener información sobre Use_decl_annotations, consulte Anotación del comportamiento de la función.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL <= DISPATCH_LEVEL

Consulte también

FilterAttach

NDIS_STATUS_INDICATION

NdisFIndicateStatus

NdisFRegisterFilterDriver