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

A função ProtocolCoAfRegisterNotify é usada por clientes NDIS orientados à conexão. Todos os clientes NDIS orientados à conexão devem ter funções ProtocolCoAfRegisterNotify totalmente funcionais. Os gerenciadores de chamadas independentes orientados à conexão registraram funções ProtocolCoAfRegisterNotify que simplesmente retornam o controle.

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

Sintaxe

PROTOCOL_CO_AF_REGISTER_NOTIFY ProtocolCoAfRegisterNotify;

VOID() ProtocolCoAfRegisterNotify(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] PCO_ADDRESS_FAMILY AddressFamily
)
{...}

Parâmetros

[in] ProtocolBindingContext

Especifica o identificador para a área de contexto alocada pelo cliente na qual o protocolo do cliente mantém o estado de tempo de execução por associação. A função ProtocolBindAdapterEx do cliente forneceu esse identificador quando chamou NdisOpenAdapterEx.

[in] AddressFamily

Ponteiro para um buffer que descreve o suporte ao protocolo de sinalização fornecido por um gerenciador de chamadas que acabou de registrar esses serviços com o NDIS chamando NdisCmRegisterAddressFamilyEx ou NdisMCmRegisterAddressFamilyEx.

Retornar valor

Nenhum

Comentários

Uma chamada para ProtocolCoAfRegisterNotify anuncia os serviços de gerenciamento de chamadas de um determinado gerenciador de chamadas ou do driver MCM em uma NIC subjacente orientada à conexão à qual o cliente está associado.

ProtocolCoAfRegisterNotify examina os dados em AddressFamily para determinar se o cliente pode usar os serviços desse gerenciador de chamadas específico. Se o cliente pode fazer modificações nos dados fornecidos (M)CM em AddressFamily depende do suporte específico do signaling-protocol do gerenciador de chamadas.

Se o cliente achar os serviços de gerenciamento de chamadas oferecidos inaceitáveis, ProtocolCoAfRegisterNotify retornará o controle e o NDIS poderá chamar ProtocolCoAfRegisterNotify novamente com o mesmo identificador ProtocolBindingContext e uma especificação af fornecida por esse ou outro gerenciador de chamadas também associada ao mesmo driver de miniporto subjacente. Caso contrário, ProtocolAfRegisterNotify aloca uma área de contexto por AF para o cliente e chama NdisClOpenAddressFamilyEx com o ponteiro AddressFamily . Se essa chamada for bem-sucedida, o cliente registrou suas funções ProtocolClXxx com NDIS para operações subsequentes orientadas à conexão usando os serviços desse gerenciador de chamadas.

Por exemplo, ProtocolCoAfRegisterNotify ou ProtocolClOpenAfCompleteEx pode chamar NdisInitializeNPagedLookasideList uma ou mais vezes em preparação para alocações dinâmicas e versões de áreas de contexto por SAP, por VC e/ou por parte que o cliente precisará posteriormente.

Se ele aceitar chamadas de entrada, o ProtocolCoAfRegisterNotify de um cliente ouA função ProtocolClOpenAfCompleteEx geralmente registra um ou mais SAPs com o gerenciador de chamadas. Depois de abrir o AF do gerenciador de chamadas, o cliente pode continuar alocando uma área de estado por SAP e chamar NdisClRegisterSap uma ou mais vezes com o NdisAfHandle obtido de NdisClOpenAddressFamilyEx. Se ele fizer chamadas de saída, o cliente poderá continuar alocando uma área de estado por VC e criar uma VC com NdisCoCreateVc na expectativa de uma solicitação de entrada de um de seus próprios clientes para fazer uma chamada de saída para um nó remoto.

Exemplos

Para definir uma função ProtocolCoAfRegisterNotify , 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 ProtocolCoAfRegisterNotify chamada "MyCoAfRegisterNotify", use o tipo PROTOCOL_CO_AF_REGISTER_NOTIFY conforme mostrado neste exemplo de código:

PROTOCOL_CO_AF_REGISTER_NOTIFY MyCoAfRegisterNotify;

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

_Use_decl_annotations_
VOID
 MyCoAfRegisterNotify(
    NDIS_HANDLE  ProtocolBindingContext,
    PCO_ADDRESS_FAMILY  AddressFamily
    )
  {...}

O tipo de função PROTOCOL_CO_AF_REGISTER_NOTIFY é 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_CO_AF_REGISTER_NOTIFY 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 para drivers NDIS 6.0 e NDIS 5.1 (consulte ProtocolCoAfRegisterNotify (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte ProtocolCoAfRegisterNotify (NDIS 5.1)) no Windows XP.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL PASSIVE_LEVEL

Confira também

CO_ADDRESS_FAMILY

NdisClOpenAddressFamilyEx

NdisClRegisterSap

NdisCmRegisterAddressFamilyEx

NdisCoCreateVc

NdisInitializeNPagedLookasideList NdisMCmRegisterAddressFamilyEx

NdisOpenAdapterEx

ProtocolBindAdapterEx

ProtocolClOpenAfCompleteEx