Compartir a través de


Función NdisReadNetworkAddress (ndis.h)

La función NdisReadNetworkAddress devuelve la dirección de red configurable por software que se almacenó en el registro para una NIC cuando se instaló en la máquina.

Sintaxis

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

Parámetros

[out] Status

Puntero a una variable proporcionada por el autor de la llamada en la que esta función devuelve el estado de la llamada como una de las siguientes:

NDIS_STATUS_SUCCESS

El autor de la llamada puede usar la dirección devuelta en NetworkAddress para la NIC.

NDIS_STATUS_FAILURE

No había ninguna información de dirección NIC disponible en la clave parameters del Registro del autor de la llamada o el valor almacenado no era una cadena.

[out] NetworkAddress

Puntero a una variable proporcionada por el autor de la llamada en la que esta función devuelve un puntero a un búfer que contiene la dirección de red (normalmente la dirección MAC), almacenada como una secuencia de enteros de bytes, si la llamada se realiza correctamente.

[out] NetworkAddressLength

Puntero a una variable proporcionada por el autor de la llamada en la que esta función devuelve el número de bytes que se devuelven en NetworkAddress.

[in] ConfigurationHandle

Identificador de configuración devuelto por . Función NdisOpenConfigurationEx .

Valor devuelto

None

Observaciones

NdisReadNetworkAddress busca en la clave parameters del Registro designada por el elemento ConfigurationHandle especificado para la palabra clave NetworkAddress, convierte el valor de esta entrada de tipo de cadena en una secuencia de enteros de bytes y almacena la información solicitada internamente. El almacenamiento que asigna NDIS para esta dirección sigue siendo válido hasta que el controlador de miniporte llama a la función NdisCloseConfiguration , que libera la memoria.

El llamador no puede usar la variable en NetworkAddress como puntero a menos que NdisReadNetworkAddress devuelva NDIS_STATUS_SUCCESS en Estado.

El programa de instalación de una NIC que admita direccionamiento de red configurable por software debe almacenar una entrada de valor denominada con la palabra clave NetworkAddress en la palabra clave HKLM\System\CurrentControlSet\Control\Class{4d36e972...} Clave \00xx del Registro.

Un instalador de NIC normalmente almacena el valor de una entrada NetworkAddress en el Registro como una cadena de dígitos hexadecimales. Opcionalmente, un instalador puede almacenar esta dirección como una cadena de dígitos emparejados, con cada par separado del siguiente por un guión. NdisReadNetworkAddress descarta guiones y convierte cada par en un solo byte.

En cualquier forma, NdisReadNetworkAddress convierte la dirección especificada como una cadena, un carácter a la vez, en el entero equivalente hasta que se agote la cadena.

En el Registro de Windows 2000 y versiones posteriores, esta cadena de dirección instalada contiene caracteres Unicode.

Tenga en cuenta que NDIS no valida el valor en NetworkAddress. NDIS no garantiza que este valor sea una dirección válida, que el valor tenga la longitud adecuada o incluso que el valor sea una dirección de red. Por lo tanto, el autor de la llamada de NdisReadNetworkAddress no debe realizar ninguna suposición sobre este valor y debe validar el valor. Si el autor de la llamada determina que el valor está fuera de los límites, no debe usar el valor ; en su lugar, debe usar la dirección de control de acceso medio permanente (MAC) o una dirección predeterminada.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con controladores NDIS 6.0 y versiones posteriores en Windows Vista y versiones posteriores. Compatible con los controladores NDIS 5.1 (consulte NdisReadNetworkAddress (NDIS 5.1)) en Windows XP y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI Irql_Miscellaneous_Function(ndis)

Consulte también

NdisCloseConfiguration

NdisOpenConfigurationEx