Compartilhar via


Função NdisMIndicateStatus (ndis.h)

Nota 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 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 original do identificador para MiniportInitialize.

[in] GeneralStatus

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

[in] StatusBuffer

Ponteiro para um buffer alocado pelo chamador que contém dados específicos de mídia e dependentes 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.

Retornar valor

Nenhum

Comentários

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 NDIS_STATUS_ XXX 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 geral status indicando a alteração geral no status.
  • Um motivo específico para a alteração geral, que pode ser específica da rede. Por exemplo, falhas de inserção de anel são específicas para redes de Anel de Token (802.5), mas são irrelevantes para NICs Ethernet (802.3) e seus drivers.

Um driver de miniporta também pode chamar NdisMIndicateStatus para indicar problemas como cabos que foram removidos acidentalmente e reinseridos 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, todos os 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, MiniportHalt ou MiniportShutdown . Somente um driver de miniporto desserializado pode chamar NdisMIndicateStatus no contexto de sua função MiniportInitialize .

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

Chamadores serializados de NdisMIndicateStatus devem ser executados em IRQL = DISPATCH_LEVEL. Chamadores desserializados de NdisMIndicateStatus devem ser executados em IRQL <= DISPATCH_LEVEL.

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

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

Observação Os 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 miniporta lan sem fio para NdisMIndicateStatus

Os drivers de miniporta 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 de sinal recebida 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 da 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 wan para NdisMIndicateStatus

A maioria dos drivers WAN NIC indica 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 os drivers de protocolo NDIS associados a esse driver de miniporto podem ignorar essas indicações. No entanto, processar essas indicações corretamente geralmente resulta em melhor desempenho para protocolos e para drivers WAN NIC.

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

  • Uma linha acima
  • Uma linha abaixo
  • Fragmento
  • Evento de linha TAPI

NDIS_STATUS_WAN_LINE_UP

Um driver de miniporta 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 tenham êxito 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 miniporto WAN faz essa indicação com NdisMIndicateStatus antes de retornar da solicitação de OID_TAPI_GET_ID .

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

NDIS_STATUS_WAN_LINE_DOWN

Um driver de miniporta WAN faz uma indicação de line-down sempre que um link fica inativo. 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 status para a indicação de line-down é NDIS_STATUS_WAN_LINE_DOWN. O buffer em StatusBuffer é formatado como uma estrutura NDIS_MAC_LINE_DOWN .

NDIS_STATUS_WAN_FRAGMENT

Um driver de miniporta 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 um tempo limite ocorrer.

O código status para a indicação de fragmento é NDIS_STATUS_WAN_FRAGMENT. O buffer em StatusBuffer é formatado como uma estrutura 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 miniporta 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 NDIS_TAPI_EVENT.

  • Plataforma de destino: Universal
  • Versão: não há suporte para drivers NDIS 6.0 no Windows Vista. Em vez disso, 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

Confira também