Compartir a través de


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

La función ProtocolStatusEx indica los cambios de estado de los controladores o NDIS subyacentes sin conexión.

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

Sintaxis

PROTOCOL_STATUS_EX ProtocolStatusEx;

void ProtocolStatusEx(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [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] StatusIndication

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

Valor devuelto

None

Observaciones

Una llamada a ProtocolStatusEx notifica al controlador de protocolo los cambios en el estado de un controlador subyacente.

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 la función ProtocolStatusEx de todos los controladores de protocolo enlazados cuando un controlador subyacente restablezca una NIC. En primer lugar, NDIS especifica el código de NDIS_STATUS_RESET_START y versiones posteriores, cuando se completa la operación de restablecimiento, NDIS especifica el código NDIS_STATUS_RESET_END .

NDIS no aceptará solicitudes de envío y solicitudes de OID para un adaptador de minipuerto mientras una operación de restablecimiento está en curso, la notificación NDIS_STATUS_RESET_START advierte a los controladores de protocolo enlazados para detener dichas solicitudes en el enlace afectado hasta que reciban la notificación de NDIS_STATUS_RESET_END correspondiente.

NDIS llama a ProtocolStatusEx en IRQL <= DISPATCH_LEVEL.

Ejemplos

Para definir una función ProtocolStatusEx , 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 ProtocolStatusEx denominada "MyStatusEx", use el tipo PROTOCOL_STATUS_EX como se muestra en este ejemplo de código:

PROTOCOL_STATUS_EX MyStatusEx;

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

_Use_decl_annotations_
VOID
 MyStatusEx(
    NDIS_HANDLE  ProtocolBindingContext,
    PNDIS_STATUS_INDICATION  StatusIndication
    )
  {...}

El tipo de función PROTOCOL_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_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 también

MiniportResetEx

NDIS_STATUS_INDICATION

NDIS_STATUS_RESET_END

NDIS_STATUS_RESET_START

NdisOpenAdapterEx