Compartir a través de


OID_GEN_NETWORK_LAYER_ADDRESSES

Como conjunto, el OID_GEN_NETWORK_LAYER_ADDRESSES OID notifica al controlador de minipuerto subyacente y a otros controladores superpuestas la lista de direcciones de capa de red asociadas a instancias enlazadas.

Información de versión

Windows Vista y versiones posteriores de Windows
Compatible.

Controladores de miniporte NDIS 6.0 y versiones posteriores
Opcional.

Controladores de miniporte NDIS 5.1
Opcional.

Windows XP
Compatible.

Controladores de miniporte NDIS 5.1
Opcional.

Observaciones

Una instancia enlazada es el enlace entre el transporte de llamada y un controlador configurado por una llamada a NdisOpenAdapterEx. Los transportes usan TRANSPORT_ADDRESS y estructuras de TA_ADDRESS para notificar a los controladores de miniporte subyacentes y otros controladores por capas sobre la lista de direcciones de capa de red. Los controladores miniporte y otros controladores en capas usan estructuras compatibles de NETWORK_ADDRESS_LIST y NETWORK_ADDRESS, definidas de la siguiente manera, para establecer la lista de direcciones de capa de red en una interfaz enlazada.

typedef struct _NETWORK_ADDRESS_LIST {
  LONG  AddressCount; 
  USHORT  AddressType; 
  NETWORK_ADDRESS  Address[1]; 
} NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;

Los miembros de esta estructura contienen la siguiente información:

AddressCount
Especifica el número de direcciones de capa de red enumeradas en la matriz del miembro Address .

AddressType
Especifica el tipo de protocolo que envía este OID. Este miembro solo es válido si el miembro AddressCount está establecido en cero. El miembro AddressCount se establece en cero para notificar a un controlador de minipuerto u otro controlador por capas para borrar la lista de direcciones de capa de red en una interfaz enlazada. El protocolo puede ser uno de los siguientes valores:

NDIS_PROTOCOL_ID_DEFAULT
Protocolo predeterminado

NDIS_PROTOCOL_ID_TCP_IP
Protocolo TCP/IP

NDIS_PROTOCOL_ID_IPX
Protocolo IPX de NetWare

NDIS_PROTOCOL_ID_NBF
Protocolo NetBIOS

Dirección
Matriz de direcciones de capa de red de tipo NETWORK_ADDRESS. El miembro AddressCount especifica el número de elementos de esta matriz.

typedef struct _NETWORK_ADDRESS {
  USHORT  AddressLength; 
  USHORT  AddressType; 
  UCHAR   Address[1]; 
} NETWORK_ADDRESS, *PNETWORK_ADDRESS;

Los miembros de esta estructura contienen la siguiente información:

AddressLength
Especifica el tamaño, en bytes, de esta dirección de capa de red. El miembro Address contiene la matriz de bytes que especifican esta dirección.

AddressType
Especifica el tipo de protocolo que envía este OID y esta dirección de capa de red. Este miembro solo es válido si el miembro AddressCount de la estructura NETWORK_ADDRESS_LIST se establece en un valor distinto de cero. El miembro AddressCount de NETWORK_ADDRESS_LIST se establece en un valor distinto de cero para notificar a un controlador de miniporte u otro controlador por capas para cambiar la lista de direcciones de capa de red en una interfaz enlazada. Los tipos de protocolo se definen en la lista anterior.

Dirección
Matriz de bytes que especifican esta dirección de capa de red. El miembro AddressLength especifica el número de bytes de esta matriz.

El transporte puede llamar a la función NdisOidRequest y puede pasar una estructura de NDIS_OID_REQUEST que se rellena con el código de OID_GEN_NETWORK_LAYER_ADDRESSES. Esta llamada notifica a una instancia enlazada de un cambio en las direcciones asociadas a esa instancia. En esta llamada, el transporte también pasa la instancia enlazada en el parámetro NdisBindingHandle . La instancia enlazada es el enlace configurado entre el transporte y el controlador de minipuerto subyacente u otro controlador en capas. Para esta llamada, el transporte debe rellenar el miembro InformationBuffer de NDIS_OID_REQUEST con un puntero a una estructura de TRANSPORT_ADDRESS. TRANSPORT_ADDRESS corresponde a una estructura de NETWORK_ADDRESS_LIST y debe contener la lista de direcciones de capa de red.

Supongamos que un transporte pasa direcciones a través de un controlador intermedio hasta un controlador de miniporte subyacente. Si el controlador intermedio también requiere las direcciones, debe tomar nota de ellas antes de pasarlas al controlador de miniporte subyacente. Un controlador de minipuerto subyacente, especialmente un controlador antiguo, puede devolver un valor de estado de NDIS_STATUS_NOT_SUPPORTED o NDIS_STATUS_SUCCESS. El controlador de miniporte subyacente propaga el estado de la operación de copia de seguridad hacia el transporte. Si el controlador intermedio debe seguir recibiendo notificaciones de dirección y, si es necesario, el controlador intermedio debe cambiar el estado a NDIS_STATUS_SUCCESS. De lo contrario, el transporte podría interpretar NDIS_STATUS_NOT_SUPPORTED como indicación de que el controlador de miniporte subyacente no requiere que el problema de transporte actualice las direcciones adicionales. Si se devuelve NDIS_STATUS_SUCCESS, los transportes están obligados a seguir notificando a los conductores subyacentes cualquier cambio en las direcciones asociadas, incluida la adición y eliminación de direcciones.

Un protocolo puede establecer el miembro AddressCount de TRANSPORT_ADDRESS en cero para notificar a un controlador de miniporte u otro controlador por capas para borrar la lista de direcciones de capa de red en una interfaz enlazada. Si AddressCount se establece en cero, el miembro AddressType de NETWORK_ADDRESS_LIST es válido y los miembros AddressType de NETWORK_ADDRESS estructuras no son válidos. Por otro lado, un protocolo puede establecer AddressCount en un valor distinto de cero para notificar a un controlador de miniporte u otro controlador por capas para cambiar la lista de direcciones de capa de red en una interfaz enlazada. En este caso, el miembro AddressType de NETWORK_ADDRESS_LIST no es válido y los miembros AddressType de NETWORK_ADDRESS estructuras son válidos.

Requisitos

Encabezado

Ntddndis.h (include Ndis.h)

Consulte también

NDIS_OID_REQUEST

NdisOidRequest

NdisOpenAdapterEx