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