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 NDIS_STATUS_INDICATION que contiene la información de estado.
Valor devuelto
Ninguno
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 de NdisFIndicateStatus al final de su función filterStatus para pasar la indicación de estado a los controladores demasiado excesivos.
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 de
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 análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran 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 tal 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 Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.
Para obtener información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.0 y versiones posteriores. |
de la plataforma de destino de | Windows |
encabezado de | ndis.h (incluya Ndis.h) |
irQL | <= DISPATCH_LEVEL |