Partilhar via


Função NdisMIndicateStatus (ndis.h)

Observação NDIS 5. x foi preterido e substituído pelo NDIS 6. x. Para obter um novo desenvolvimento de driver NDIS, consulte Drivers de Rede começando com o Windows Vista. Para obter informações sobre como portar o NDIS 5. x drivers para o NDIS 6. x, consulte portabilidade de drivers NDIS 5.x para NDIS 6.0.

NdisMIndicateStatus indica alterações no status de uma NIC para drivers NDIS de nível superior.

Sintaxe

void NdisMIndicateStatus(
  [in] NDIS_HANDLE MiniportHandle,
  [in] NDIS_STATUS GeneralStatus,
  [in] PVOID       StatusBuffer,
  [in] UINT        StatusBufferSize
);

Parâmetros

[in] MiniportHandle

Especifica a entrada do identificador originalmente para MiniportInitialize.

[in] GeneralStatus

Especifica o valor NDIS_STATUS_ XXX que indica a alteração geral no status da NIC.

[in] StatusBuffer

Ponteiro para um buffer alocado por chamador que contém dados específicos e que dependem do valor de GeneralStatus. Indica informações detalhadas sobre a alteração no status.

[in] StatusBufferSize

Especifica o tamanho em bytes do buffer em StatusBuffer.

Valor de retorno

Nenhum

Observações

Quando um driver de miniporto chama NdisMIndicateStatus, o NDIS chama a função ProtocolStatus de cada protocolo associado. Isso permite que um driver de protocolo associado ou, possivelmente, o gerenciador de configurações registre a alteração no status de uma NIC subjacente ou execute uma ação corretiva. Por exemplo, um protocolo pode chamar NdisReset, dependendo do XXX NDIS_STATUS_ indicado.

Quando um driver de miniporto chama NdisMIndicateStatus para relatar uma alteração no status nic, o NDIS pode chamar a função MiniportReset para tentar restaurar a NIC para uma condição de trabalho. Nessas circunstâncias, o NDIS pode chamar protocolos associados apenas com NDIS_STATUS_RESET_START e posterior com NDIS_STATUS_RESET_END, em vez de com o GeneralStatus indicado pelo driver de miniporto.

NdisMIndicateStatus fornece duas informações:

  • Um valor de status geral que indica a alteração geral no status.
  • Um motivo específico para a alteração geral, que pode ser específica da rede. Por exemplo, as falhas de inserção de anel são particulares às redes do Anel de Token (802.5), mas são irrelevantes para as NICs Ethernet (802.3) e seus drivers.

Um driver de miniporto também pode chamar NdisMIndicateStatus para indicar problemas como cabos que foram removidos acidentalmente e reinsertados ou um anel que falhou temporariamente. Por exemplo, suponha que ambas as seguintes condições ocorram:

  • O driver de miniporto chama NdisMIndicateStatus com NDIS_STATUS_RING_STATUS.

  • O StatusBuffer contém um dos seguintes valores de status:

    • NDIS_RING_LOBE_WIRE_FAULT
    • NDIS_RING_HARD_ERROR NDIS_RING_SIGNAL_LOSS

Depois que essa alteração no status tiver sido sinalizada com uma indicação, quaisquer limites associados ou contadores de estatísticas permanecerão inalterados.

Um driver de miniporto não pode chamar NdisMIndicateStatus no contexto de sua função MiniportISR, MiniportHaltou miniportShutdown. Somente um driver de miniporto desserializado pode chamar NdisMIndicateStatus no contexto de sua função MiniportInitialize.

Um driver de miniporto deve liberar qualquer bloqueio de rotação que ele esteja segurando antes de chamar NdisMIndicateStatus.

Os chamadores serializados de NdisMIndicateStatus devem ser executados em IRQL = DISPATCH_LEVEL. Os chamadores desserializados do NdisMIndicateStatus devem ser executados em IRQL <= DISPATCH_LEVEL.

indicando a perda e restauração de uma conexão de rede

Quando um driver de miniporto percebe que a conexão de rede foi perdida, ele deve chamar NdisMIndicateStatus com NDIS_STATUS_MEDIA_DISCONNECT. Quando a conexão for restaurada, o driver de miniporto deverá chamar NdisMIndicateStatus com NDIS_STATUS_MEDIA_CONNECT.

Observação drivers de miniporto 802.11 devem seguir as diretrizes de status de mídia para LANs sem fio ao gerar indicações de conexão de rede. Para obter mais informações sobre essas diretrizes, consulte Indicações de status de mídia para redes 802.11.

802.11 Chamadas de driver de miniporto lan sem fio para NdisMIndicateStatus

Os drivers de miniporto WLAN (LAN sem fio) 802.11 podem fazer várias indicações específicas para a mídia WLAN. Por exemplo, o driver de miniporto pode fazer uma indicação específica da WLAN quando ocorre o seguinte:

  • O driver detecta que a força do sinal recebido de sua associação BSS atual foi alterada.
  • O driver detecta uma falha de MIC TKIP em um pacote recebido.

Os seguintes tipos de indicações específicas de WLAN podem ser feitos por drivers de miniporto 802.11 com NdisMIndicateStatus:

Para obter mais informações sobre essas indicações específicas de mídia, consulte 802.11 Media-Specific Indicações de Status.

chamadas de driver de miniport de WAN para NdisMIndicateStatus

A maioria dos drivers WAN NIC indica o status com alguns códigos de status especiais e conteúdo de buffer. Essas indicações de status são geradas por drivers WAN NIC e drivers de protocolo NDIS associados a esse driver de miniporto podem ignorar essas indicações. No entanto, o processamento dessas indicações normalmente resulta em um melhor desempenho para protocolos e para drivers WAN NIC.

Os quatro tipos a seguir de indicações específicas de WAN podem ser enviados para drivers de protocolo associados com NdisMIndicateStatus:

  • Alinhar
  • Linha para baixo
  • Fragmento
  • Evento de linha TAPI

NDIS_STATUS_WAN_LINE_UP

Um driver de miniporto WAN faz uma indicação de line-up sempre que um novo link se torna ativo. Até que isso ocorra, a NIC aceitará quadros e permitirá que eles sejam bem-sucedidos ou falhem, mas é improvável que eles sejam realmente recebidos por qualquer nó remoto. Até que isso ocorra, os protocolos devem reduzir seus temporizadores e contagens de repetição para falhar rapidamente em qualquer tentativa de conexão de saída.

O driver de miniport de WAN faz essa indicação com NdisMIndicateStatus antes de retornar da solicitação de OID_TAPI_GET_ID.

O código de status da indicação de line-up é NDIS_STATUS_WAN_LINE_UP. O buffer em StatusBuffer é formatado como uma estrutura de NDIS_MAC_LINE_UP.

NDIS_STATUS_WAN_LINE_DOWN

Um driver de miniport wan faz uma indicação de line-down sempre que um link cai. Quando isso ocorre, os protocolos associados devem reduzir os temporizadores e as contagens de repetição até a próxima indicação de line-up.

O código de status da indicação de line-down é NDIS_STATUS_WAN_LINE_DOWN. O buffer em StatusBuffer é formatado como uma estrutura de NDIS_MAC_LINE_DOWN.

NDIS_STATUS_WAN_FRAGMENT

Um driver de miniporto WAN faz uma indicação de fragmento sempre que recebe um pacote parcial do nó remoto. Quando isso ocorre, um protocolo associado deve enviar quadros para o nó remoto que o notificará sobre essa situação, em vez de aguardar o tempo limite ocorrer.

O código de status da indicação de fragmento é NDIS_STATUS_WAN_FRAGMENT. O buffer em do StatusBuffer é formatado como uma estrutura de NDIS_MAC_FRAGMENT.

O NDISWAN monitora pacotes descartados contando o número de indicações de fragmento em cada link.

NDIS_TAPI_EVENT

Um driver de miniporto WAN deve usar um valor GeneralStatus de NDIS_STATUS_TAPI_INDICATION para indicações de status TAPI . O buffer em StatusBuffer é formatado como uma estrutura de NDIS_TAPI_EVENT.

  • Plataforma de destino: Universal
  • Versão: Não há suporte para drivers NDIS 6.0 no Windows Vista. Use NdisMIndicateStatusEx. Com suporte para drivers NDIS 5.1 no Windows Vista e no Windows XP.

Requisitos

Requisito Valor
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib

Consulte também