Compartilhar via


função de retorno de chamada PROTOCOL_STATUS_EX (ndis.h)

A função ProtocolStatusEx indica status alterações de drivers ou NDIS subjacentes sem conexão.

Nota Você deve declarar a função usando o tipo PROTOCOL_STATUS_EX . Para obter mais informações, consulte a seção Exemplos a seguir.
 

Sintaxe

PROTOCOL_STATUS_EX ProtocolStatusEx;

void ProtocolStatusEx(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] PNDIS_STATUS_INDICATION StatusIndication
)
{...}

Parâmetros

[in] ProtocolBindingContext

Um identificador para uma área de contexto alocada pelo driver de protocolo. O driver de protocolo mantém as informações de contexto por associação nessa área de contexto. O driver forneceu esse identificador para o NDIS quando o driver chamou a função NdisOpenAdapterEx .

[in] StatusIndication

Um ponteiro para uma estrutura NDIS_STATUS_INDICATION que contém as informações de status.

Retornar valor

Nenhum

Comentários

Uma chamada para ProtocolStatusEx notifica o driver de protocolo sobre as alterações no status de um driver subjacente.

Para determinar status de link, use as indicações de status de drivers subjacentes em vez de consultas OID. Essas status indicações melhorarão o desempenho do sistema e evitarão possíveis condições de corrida.

O NDIS chama a função ProtocolStatusEx de todos os drivers de protocolo associados quando um driver subjacente está redefinindo uma NIC. Primeiro, o NDIS especifica o código NDIS_STATUS_RESET_START e, posteriormente, quando a operação de redefinição é concluída, o NDIS especifica o código NDIS_STATUS_RESET_END .

O NDIS não aceitará solicitações de envio e solicitações de OID para um adaptador de miniporto enquanto uma operação de redefinição estiver em andamento, a notificação de NDIS_STATUS_RESET_START avisa os drivers de protocolo associados para interromper essas solicitações na associação afetada até que recebam a notificação de NDIS_STATUS_RESET_END correspondente.

O NDIS chama ProtocolStatusEx em IRQL <= DISPATCH_LEVEL.

Exemplos

Para definir uma função ProtocolStatusEx , primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para gravar drivers para o sistema operacional Windows.

Por exemplo, para definir uma função ProtocolStatusEx chamada "MyStatusEx", use o tipo PROTOCOL_STATUS_EX conforme mostrado neste exemplo de código:

PROTOCOL_STATUS_EX MyStatusEx;

Em seguida, implemente sua função da seguinte maneira:

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

O tipo de função PROTOCOL_STATUS_EX é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função PROTOCOL_STATUS_EX no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.

Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL

Confira também

MiniportResetEx

NDIS_STATUS_INDICATION

NDIS_STATUS_RESET_END

NDIS_STATUS_RESET_START

NdisOpenAdapterEx