Função NdisMCmRegisterAddressFamilyEx (ndis.h)

A função NdisMCmRegisterAddressFamilyEx registra uma AF (família de endereços) para comunicação entre um MCM (gerenciador de chamadas de miniporto) e clientes CoNDIS.

Sintaxe

NDIS_STATUS NdisMCmRegisterAddressFamilyEx(
  [in] NDIS_HANDLE        MiniportAdapterHandle,
  [in] PCO_ADDRESS_FAMILY AddressFamily
);

Parâmetros

[in] MiniportAdapterHandle

Um identificador fornecido pelo NDIS que identifica um adaptador de miniporta. Esse identificador é um parâmetro de entrada para o MCM Função MiniportInitializeEx .

[in] AddressFamily

Um ponteiro para uma estrutura CO_ADDRESS_FAMILY que identifica o AF compatível com o driver MCM.

O ponteiro se torna um parâmetro de entrada para o As funções ProtocolCoAfRegisterNotify de todos os clientes CoNDIS associados a esse driver MCM.

Retornar valor

NdisMCmRegisterAddressFamilyEx pode retornar qualquer um dos seguintes:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
O driver de miniporto registrado com o NDIS como um gerenciador de chamadas para o AF especificado pelo parâmetro AddressFamily , portanto, o NDIS chamará o Funções ProtocolCoAfRegisterNotify de todos os clientes que se associam ao driver MCM.
NDIS_STATUS_RESOURCES
A operação solicitada falhou porque o NDIS não pôde alocar memória suficiente ou inicializar as informações de estado que usa para rastrear o driver MCM como um gerenciador de chamadas do AF especificado.
NDIS_STATUS_FAILURE
Falha no NDIS na chamada para NdisMCmRegisterAddressFamilyEx, possivelmente por um dos seguintes motivos:
  • O chamador não foi registrado como um driver de miniporto orientado para conexão.
  • O chamador tentou registrar um AF duplicado para um determinado adaptador de miniporta.

Comentários

MCMs NDIS, que se registram como drivers de miniporta NDIS chamando o A função NdisMRegisterMiniportDriver deve chamar a função NdisMCmRegisterAddressFamilyEx para registrar um AF. Em vez disso, os gerentes de chamadas autônomos devem chamar o Função NdisCmRegisterAddressFamilyEx .

Para registrar um AF para um adaptador de miniporta, o MCM deve chamar NdisMCmRegisterAddressFamilyEx da função MiniportInitializeEx .

O driver de qualquer NIC (cartão de interface de rede) que tenha suporte de sinalização orientado a conexão a bordo pode se registrar como um driver MCM para melhorar o desempenho no gerenciamento de chamadas. Se um driver se registrar como um driver MCM, qualquer gerenciador de chamadas autônomo com o suporte de gerenciamento de chamadas do próprio driver NIC será deslocado.

Um driver MCM chama NdisMCmRegisterAddressFamilyEx depois de determinar que uma NIC está totalmente operacional e o driver pode concluir as operações de E/S de rede. Ou seja, um MCM se registra como um gerenciador de chamadas e anuncia seus serviços de sinalização específicos para clientes CoNDIS.

Depois que MiniportInitializeEx retorna o controle com um registro bem-sucedido como um gerenciador de chamadas, o NDIS chama as funções ProtocolBindAdapterEx de clientes potenciais e, em seguida, o As funções ProtocolCoAfRegisterNotify de todos os clientes que se associam ao adaptador de miniporto MCM associado. Esses clientes fazem com que o NDIS chame a função ProtocolCmOpenAf do MCM.

Um MCM pode dar suporte a mais de um AF para uma única NIC que gerencia. O driver MCM deve chamar NdisMCmRegisterAddressFamilyEx uma vez para cada AF que ele registra para um adaptador de miniporto. Somente um driver MCM pode dar suporte a um tipo específico de AF para clientes associados a um determinado adaptador de miniporta.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Área de Trabalho
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI Irql_MCM_Function(ndis)

Confira também

CO_ADDRESS_FAMILY

MiniportInitializeEx

NdisCmRegisterAddressFamilyEx

NdisMRegisterMiniportDriver

ProtocolBindAdapterEx

ProtocolCmOpenAf

ProtocolCoAfRegisterNotify

ProtocolCoCreateVc

ProtocolCoDeleteVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete