Função NdisReadNetworkAddress (ndis.h)

A função NdisReadNetworkAddress retorna o endereço de rede configurável pelo software que foi armazenado no registro para uma NIC quando ele foi instalado no computador.

Sintaxe

void NdisReadNetworkAddress(
  [out] PNDIS_STATUS Status,
  [out] PVOID        *NetworkAddress,
  [out] PUINT        NetworkAddressLength,
  [in]  NDIS_HANDLE  ConfigurationHandle
);

Parâmetros

[out] Status

Um ponteiro para uma variável fornecida pelo chamador na qual essa função retorna a status da chamada como uma das seguintes:

NDIS_STATUS_SUCCESS

O chamador pode usar o endereço retornado em NetworkAddress para a NIC.

NDIS_STATUS_FAILURE

Não havia informações de endereço NIC disponíveis na chave parâmetros do registro do chamador ou o valor armazenado não era uma cadeia de caracteres .

[out] NetworkAddress

Um ponteiro para uma variável fornecida pelo chamador na qual essa função retorna um ponteiro para um buffer que contém o endereço de rede (normalmente o endereço MAC), armazenado como uma sequência de inteiros de bytes, se a chamada for bem-sucedida.

[out] NetworkAddressLength

Um ponteiro para uma variável fornecida pelo chamador na qual essa função retorna o número de bytes retornados em NetworkAddress.

[in] ConfigurationHandle

O identificador de configuração retornado pelo Função NdisOpenConfigurationEx .

Retornar valor

Nenhum

Comentários

NdisReadNetworkAddress pesquisa a chave parâmetros do Registro designada pelo ConfigurationHandle fornecido para o palavra-chave NetworkAddress, converte o valor dessa entrada de tipo de cadeia de caracteres em uma sequência de inteiros de bytes e armazena as informações solicitadas internamente. O armazenamento que o NDIS aloca para esse endereço permanece válido até que o driver de miniporto chame a função NdisCloseConfiguration , que libera a memória.

O chamador não pode usar a variável em NetworkAddress como um ponteiro, a menos que NdisReadNetworkAddress retorne NDIS_STATUS_SUCCESS em Status.

O programa de instalação de uma NIC que dá suporte ao endereçamento de rede configurável por software deve armazenar uma entrada de valor chamada com o palavra-chave NetworkAddress no HKLM\System\CurrentControlSet\Control\Class{4d36e972...} \00xx chave do registro.

Um instalador NIC geralmente armazena o valor de uma entrada NetworkAddress no registro como uma cadeia de caracteres de dígitos hexadecimal. Opcionalmente, um instalador pode armazenar um endereço como uma cadeia de caracteres de dígitos emparelhados, com cada par separado do próximo por um hífen. NdisReadNetworkAddress descarta hifens e converte cada par em um único byte.

Em qualquer um dos formulários, NdisReadNetworkAddress converte o endereço especificado como uma cadeia de caracteres, um caractere por vez, no inteiro equivalente até que a cadeia de caracteres seja esgotada.

No registro do Windows 2000 e versões posteriores, essa cadeia de caracteres de endereço instalada contém caracteres Unicode.

Observe que o NDIS não valida o valor em NetworkAddress. O NDIS não garante que esse valor seja um endereço válido, que o valor tenha o comprimento adequado ou até mesmo que o valor seja um endereço de rede. Portanto, o chamador de NdisReadNetworkAddress não deve fazer suposições sobre esse valor e deve validar o valor. Se o chamador determinar que o valor está fora dos limites, ele não deverá usar o valor ; Em vez disso, ele deve usar o endereço MAC (controle de acesso médio) permanente ou um endereço padrão.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte para drivers NDIS 6.0 e posteriores no Windows Vista e posterior. Com suporte para drivers NDIS 5.1 (consulte NdisReadNetworkAddress (NDIS 5.1)) no Windows XP e posterior.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI Irql_Miscellaneous_Function(ndis)

Confira também

NdisCloseConfiguration

NdisOpenConfigurationEx