Compartilhar via


Função NdisIfRegisterInterface (ndis.h)

A função NdisIfRegisterInterface registra um adaptador de rede NDIS.

Sintaxe

NDIS_STATUS NdisIfRegisterInterface(
  [in] NDIS_HANDLE         NdisProviderHandle,
  [in] NET_LUID            NetLuid,
  [in] NDIS_HANDLE         ProviderIfContext,
  [in] PNET_IF_INFORMATION pIfInfo,
       PNET_IFINDEX        pfIndex
);

Parâmetros

[in] NdisProviderHandle

Um identificador que identifica o provedor de interface de rede que está registrando a interface. O chamador obteve esse identificador de uma chamada anterior para o Função NdisIfRegisterProvider .

[in] NetLuid

O valor de NET_LUID fornecido pelo chamador associado à interface. O provedor de interface usou a macro NDIS_MAKE_NET_LUID para criar esse valor NET_LUID. O provedor de interface deve recuperar o valor NET_LUID do armazenamento persistente após a reinicialização do computador e fornecer o mesmo valor NET_LUID sempre que registrar uma interface específica.

[in] ProviderIfContext

Um identificador para uma área de contexto alocada pelo chamador associada à interface . O NDIS passa esse identificador para as funções de retorno de chamada registradas pelo chamador com NdisIfRegisterProvider.

[in] pIfInfo

Um ponteiro para uma estrutura de NET_IF_INFORMATION alocada pelo chamador que fornece informações sobre a interface. Essa estrutura contém informações que permanecem constantes enquanto a interface existe.

pfIndex

Um ponteiro para uma variável de índice de interface fornecida pelo chamador. Se o NDIS registrar com êxito uma interface, o NDIS alocará um índice de interface para essa interface e definirá o valor em pIfIndex . O índice de interface é um valor de 24 bits exclusivo no computador local. O NDIS pode não retornar o mesmo índice de interface sempre que um provedor registra uma interface com o mesmo valor de NET_LUID . O valor de índice de interface zero é reservado e o NDIS não o atribui a nenhuma interface. Não confunda o índice de interface com um índice NET_LUID.

Retornar valor

NdisIfRegisterInterface retorna um dos seguintes valores de status:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
A operação foi concluída com sucesso.
NDIS_STATUS_RESOURCES
A operação falhou devido a recursos insuficientes.
NDIS_STATUS_INVALID_PARAMETER
NdisIfRegisterInterface falhou porque alguns dos parâmetros de entrada são inválidos.
NDIS_STATUS_DUPLICATE_OBJECTID
NdisIfRegisterInterface falhou porque já há uma interface registrada com o mesmo valor NET_LUID especificado pelo parâmetro NetLuid .

Comentários

Os provedores de interface NDIS chamam a função NdisIfRegisterInterface para registrar um adaptador de rede. Uma chamada para essa função não implica que a interface esteja ativa.

Sempre que um computador é reiniciado, o NDIS começa com uma lista vazia de interfaces de rede registradas. Um provedor de interface chama a função NdisIfRegisterInterface sempre que uma interface é iniciada (ou detectada) e a da interface
NET_LUID é conhecido.

O método para detectar ou iniciar uma interface depende do aplicativo. Por exemplo, se um driver intermediário do LBFO MUX for um provedor de interface, esse driver poderá registrar uma interface interna quando o NDIS chamar a função ProtocolBindAdapterEx do driver para o primeiro adaptador de miniporte subjacente.

Um provedor de interface pode colocar informações sobre uma interface no armazenamento persistente e restaurar a interface conforme necessário para o aplicativo específico. Por exemplo, o provedor pode armazenar informações adicionais sobre a interface com o NET_LUID e pode registrar novamente a interface após a reinicialização do computador.

Se NdisIfRegisterInterface for bem-sucedido, o NDIS adicionará a interface à lista de interfaces conhecidas e alocará um novo índice de interface para essa interface. Os provedores de interface devem registrar interfaces habilitadas e desabilitadas, sempre que possível. Todas as interfaces habilitadas devem ser registradas.

O NDIS pode não retornar o mesmo índice de interface sempre que um provedor registrar uma interface com o mesmo valor NET_LUID. Por exemplo, o NDIS não atribui necessariamente o mesmo índice de interface quando uma interface é reregisterada depois que um computador é reiniciado ou quando a interface é desregistrado e registrado novamente. O valor de índice de interface zero é reservado e o NDIS não o atribui a nenhuma interface.

Para indicar que uma interface deve ser removida da lista de interfaces conhecidas no computador, um provedor de interface chama o Função NdisIfDeregisterInterface , por exemplo, porque a interface foi desinstalada. .

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 de DDI Irql_Interfaces_Function(ndis)

Confira também

NDIS_MAKE_NET_LUID

NET_IF_INFORMATION

NET_LUID

NdisIfDeregisterInterface

NdisIfRegisterProvider

ProtocolBindAdapterEx