Función NdisMIndicateStatus (ndis.h)
Nota NDIS 5. x está en desuso y se sustituye por NDIS 6. x. Para el nuevo desarrollo de controladores NDIS, consulte Controladores de red a partir de Windows Vista. Para obtener información sobre cómo migrar NDIS 5. Controladores x a NDIS 6. x, consulte Migración de controladores NDIS 5.x a NDIS 6.0.
NdisMIndicateStatus indica cambios en el estado de una NIC a controladores NDIS de nivel superior.
Sintaxis
void NdisMIndicateStatus(
[in] NDIS_HANDLE MiniportHandle,
[in] NDIS_STATUS GeneralStatus,
[in] PVOID StatusBuffer,
[in] UINT StatusBufferSize
);
Parámetros
[in] MiniportHandle
Especifica el identificador de entrada original para MiniportInitialize.
[in] GeneralStatus
Especifica el valor NDIS_STATUS_ XXX que indica el cambio general en el estado de la NIC.
[in] StatusBuffer
Puntero a un búfer asignado por el autor de la llamada que contiene datos que son específicos del medio y dependen del valor de GeneralStatus. Indica información detallada sobre el cambio de estado.
[in] StatusBufferSize
Especifica el tamaño en bytes del búfer en StatusBuffer.
Valor devuelto
None
Observaciones
Cuando un controlador de minipuerto llama a NdisMIndicateStatus, NDIS llama a la función ProtocolStatus de cada protocolo enlazado. Esto permite que un controlador de protocolo enlazado o, posiblemente, el administrador de configuración registre el cambio en el estado de una NIC subyacente o realice una acción correctiva. Por ejemplo, un protocolo podría llamar a NdisReset, según el NDIS_STATUS_ XXX indicado.
Cuando un controlador de minipuerto llama a NdisMIndicateStatus para notificar un cambio en el estado de la NIC, NDIS puede llamar a la función MiniportReset para intentar restaurar la NIC a una condición de trabajo. En estas circunstancias, NDIS solo puede llamar a protocolos enlazados con NDIS_STATUS_RESET_START y versiones posteriores con NDIS_STATUS_RESET_END, en lugar de con el generalStatus indicado por el controlador de miniport.
NdisMIndicateStatus proporciona dos fragmentos de información:
- Valor de estado general que indica el cambio general en el estado.
- Una razón específica del cambio general, que puede ser específica de la red. Por ejemplo, los errores de inserción de anillos son específicos de las redes token ring (802.5), pero son irrelevantes para las NIC Ethernet (802.3) y sus controladores.
Un controlador de minipuerto también puede llamar a NdisMIndicateStatus para indicar problemas como los cables que se han quitado accidentalmente y luego reinsertado o un anillo que ha fallado temporalmente. Por ejemplo, suponga que se producen las dos condiciones siguientes:
El controlador de minipuerto llama a NdisMIndicateStatus con NDIS_STATUS_RING_STATUS.
StatusBuffer contiene uno de los siguientes valores de estado:
- NDIS_RING_LOBE_WIRE_FAULT
- NDIS_RING_HARD_ERROR NDIS_RING_SIGNAL_LOSS
Una vez que se haya señalado este cambio en el estado con una indicación, los umbrales o contadores de estadísticas asociados permanecen sin cambios.
Un controlador de minipuerto no puede llamar a NdisMIndicateStatus en el contexto de su función MiniportISR, MiniportHalt o MiniportShutdown . Solo un controlador de miniporte deserializado puede llamar a NdisMIndicateStatus en el contexto de su función MiniportInitialize .
Un controlador de minipuerto debe liberar cualquier bloqueo de número que esté manteniendo antes de llamar a NdisMIndicateStatus.
Los autores de llamadas serializados de NdisMIndicateStatus deben ejecutarse en IRQL = DISPATCH_LEVEL. Los llamadores deserializados de NdisMIndicateStatus deben ejecutarse en IRQL <= DISPATCH_LEVEL.
Indica la pérdida y restauración de una conexión de red
Cuando un controlador de minipuerto detecta que se ha perdido la conexión de red, debe llamar a NdisMIndicateStatus con NDIS_STATUS_MEDIA_DISCONNECT. Cuando se restaura la conexión, el controlador de minipuerto debe llamar a NdisMIndicateStatus con NDIS_STATUS_MEDIA_CONNECT.
Nota Los controladores de minipuerto 802.11 deben seguir las directrices de estado multimedia para las REDES INALÁMBRICAs al generar indicaciones de conexión de red. Para obtener más información acerca de estas directrices, vea Media Status Indications for 802.11 Networks.
802.11 Wireless LAN Miniport llama a NdisMIndicateStatus
802.11 minipuerto inalámbrico LAN (WLAN) puede hacer diversas indicaciones específicas de los medios WLAN. Por ejemplo, el controlador de minipuerto puede hacer una indicación específica de WLAN cuando se produce lo siguiente:
- El conductor detecta que la intensidad de la señal recibida de su asociación BSS actual ha cambiado.
- El controlador detecta un error TKIP MIC en un paquete recibido.
Los siguientes tipos de indicaciones específicas de WLAN se pueden realizar por 802.11 minipuertos con NdisMIndicateStatus:
- Indicaciones RSSI
- Indicaciones de autenticación
- Indicaciones de lista de candidatos pmKID
- Indicaciones de streaming multimedia
- Indicaciones de estado de radio
Para obtener más información sobre estas indicaciones específicas de los medios, vea 802.11 Media-Specific Indicaciones de estado.
Llamadas del controlador wan Miniport a NdisMIndicateStatus
La mayoría de los controladores NIC WAN indican el estado con algunos códigos de estado especiales y el contenido del búfer. Estos indicadores de estado los generan los controladores NIC WAN y los controladores de protocolo NDIS enlazados a dicho controlador de minipuerto pueden omitir estas indicaciones. Sin embargo, el procesamiento de estas indicaciones normalmente da como resultado un rendimiento mejorado para los protocolos y para los controladores NIC wan.
Los cuatro tipos siguientes de indicaciones específicas de WAN se pueden enviar a controladores de protocolo enlazados con NdisMIndicateStatus:
- Línea arriba
- Línea abajo
- Fragmento
- Evento de línea TAPI
NDIS_STATUS_WAN_LINE_UP
Un controlador de minipuerto WAN hace una indicación de línea cada vez que se activa un nuevo vínculo. Hasta que esto ocurra, la NIC aceptará fotogramas y los permitirá que se realicen correctamente o produzcan errores, pero es poco probable que sean recibidos realmente por cualquier nodo remoto. Hasta que esto ocurra, los protocolos deben reducir sus temporizadores y los recuentos de reintento para producir rápidamente un error en los intentos de conexión salientes.
El controlador de minipuerto WAN realiza esta indicación con NdisMIndicateStatus antes de que vuelva de la solicitud OID_TAPI_GET_ID .
El código de estado de la indicación de línea es NDIS_STATUS_WAN_LINE_UP. El búfer de StatusBuffer tiene el formato de estructura NDIS_MAC_LINE_UP .
NDIS_STATUS_WAN_LINE_DOWN
Un controlador de minipuerto WAN hace una indicación de línea abajo cada vez que un vínculo deja de funcionar. Cuando esto ocurre, los protocolos enlazados deben reducir sus temporizadores y los recuentos de reintento hasta la siguiente indicación de línea.
El código de estado de la indicación de línea abajo es NDIS_STATUS_WAN_LINE_DOWN. El búfer de StatusBuffer tiene el formato de estructura NDIS_MAC_LINE_DOWN .
NDIS_STATUS_WAN_FRAGMENT
Un controlador de minipuerto WAN hace una indicación de fragmento cada vez que recibe un paquete parcial del nodo remoto. Cuando esto ocurre, un protocolo enlazado debe enviar marcos al nodo remoto que lo notificará de esta situación, en lugar de esperar a que se produzca un tiempo de espera.
El código de estado de la indicación de fragmento es NDIS_STATUS_WAN_FRAGMENT. El búfer de StatusBuffer tiene el formato de estructura NDIS_MAC_FRAGMENT .
NDISWAN supervisa los paquetes descartados contando el número de indicaciones de fragmentos en cada vínculo.
NDIS_TAPI_EVENT
Un controlador de minipuerto WAN debe usar un valor GeneralStatus de NDIS_STATUS_TAPI_INDICATION para las indicaciones de estado tapi . El búfer de StatusBuffer tiene el formato de estructura NDIS_TAPI_EVENT.
- Plataforma de destino: Universal
- Versión: no se admite para controladores NDIS 6.0 en Windows Vista. Use NdisMIndicateStatusExen su lugar. Compatible con controladores NDIS 5.1 en Windows Vista y Windows XP.
Requisitos
Requisito | Valor |
---|---|
Header | ndis.h (incluya Ndis.h) |
Library | Ndis.lib |