PROTOCOL_CO_STATUS_EX función de devolución de llamada (ndis.h)
La función ProtocolCoStatusEx indica los cambios de estado de los controladores subyacentes orientados a la conexión o desde NDIS.
Sintaxis
PROTOCOL_CO_STATUS_EX ProtocolCoStatusEx;
void ProtocolCoStatusEx(
[in] NDIS_HANDLE ProtocolBindingContext,
[in] NDIS_HANDLE ProtocolVcContext,
[in] PNDIS_STATUS_INDICATION StatusIndication
)
{...}
Parámetros
[in] ProtocolBindingContext
Identificador de un área de contexto asignada por el controlador de protocolo. El controlador de protocolo mantiene la información de contexto por enlace en este área de contexto. El controlador proporcionó este identificador a NDIS cuando el controlador llamó a la función NdisOpenAdapterEx .
[in] ProtocolVcContext
Identificador de un área de contexto asignada por el controlador de protocolo en la que el controlador de protocolo mantiene la información de estado de tiempo de ejecución de la conexión virtual (VC). Si la indicación de estado no es específica de VC, este parámetro es NULL. De lo contrario, el controlador de protocolo proporcionó originalmente este identificador cuando llamó a la función NdisCoCreateVc o desde su función ProtocolCoCreateVc .
[in] StatusIndication
Puntero a una estructura de NDIS_STATUS_INDICATION que contiene la información de estado.
Valor devuelto
None
Observaciones
NDIS llama a ProtocolCoStatusEx para notificar a un controlador de protocolo los cambios en el estado de un controlador CoNDIS subyacente. Un identificador DE VC NULL para el parámetro ProtocolVcContext indica un cambio de estado que no es específico de una credencial verificable. Para un identificador de VC que no sea NULL , NDIS restringe la notificación de estado a los clientes o administradores de llamadas que comparten este identificador de VC.
NDIS serializa las indicaciones de estado para cada enlace de protocolo. 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.
NDIS llama a ProtocolCoStatusEx en IRQL <= DISPATCH_LEVEL.
Ejemplos
Para definir una función ProtocolCoStatusEx , primero debe proporcionar una declaración de función que identifique el tipo de función que está definiendo. 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 ProtocolCoStatusEx denominada "MyCoStatusEx", use el tipo de PROTOCOL_CO_STATUS_EX como se muestra en este ejemplo de código:
PROTOCOL_CO_STATUS_EX MyCoStatusEx;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
VOID
MyCoStatusEx(
NDIS_HANDLE ProtocolBindingContext,
NDIS_HANDLE ProtocolVcContext,
PNDIS_STATUS_INDICATION StatusIndication
)
{...}
El tipo de función PROTOCOL_CO_STATUS_EX 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 PROTOCOL_CO_STATUS_EX 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 la sección Comentarios) |