Compartilhar via


OID_GEN_NETWORK_LAYER_ADDRESSES

Como um conjunto, o OID_GEN_NETWORK_LAYER_ADDRESSES OID notifica o driver de miniporto subjacente e outros drivers em camadas sobre a lista de endereços de camada de rede associados a instâncias associadas.

Informações sobre versão

Windows Vista e versões posteriores do Windows
Com suporte.

Drivers de miniporta NDIS 6.0 e posterior
Opcional.

Drivers de miniporta NDIS 5.1
Opcional.

Windows XP
Com suporte.

Drivers de miniporta NDIS 5.1
Opcional.

Comentários

Uma instância associada é a associação entre o transporte de chamada e um driver configurado por uma chamada para NdisOpenAdapterEx. Os transportes usam estruturas TRANSPORT_ADDRESS e TA_ADDRESS para notificar os drivers de miniporto subjacentes e outros drivers em camadas sobre a lista de endereços de camada de rede. Drivers de miniporta e outros drivers em camadas usam estruturas de NETWORK_ADDRESS_LIST e NETWORK_ADDRESS compatíveis, definidas da seguinte maneira, para definir a lista de endereços de camada de rede em uma interface associada.

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

Os membros dessa estrutura contêm as seguintes informações:

AddressCount
Especifica o número de endereços de camada de rede listados na matriz no membro Address .

Addresstype
Especifica o tipo de protocolo que envia esse OID. Esse membro só será válido se o membro AddressCount estiver definido como zero. O membro AddressCount está definido como zero para notificar um driver de miniporto ou outro driver em camadas para limpar a lista de endereços de camada de rede em uma interface associada. O protocolo pode ser um dos seguintes valores:

NDIS_PROTOCOL_ID_DEFAULT
Protocolo padrão

NDIS_PROTOCOL_ID_TCP_IP
Protocolo TCP/IP

NDIS_PROTOCOL_ID_IPX
Protocolo IPX do NetWare

NDIS_PROTOCOL_ID_NBF
Protocolo NetBIOS

Endereço
Matriz de endereços de camada de rede do tipo NETWORK_ADDRESS. O membro AddressCount especifica o número de elementos nessa matriz.

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

Os membros dessa estrutura contêm as seguintes informações:

AddressLength
Especifica o tamanho, em bytes, desse endereço de camada de rede. O membro Address contém a matriz de bytes que especificam esse endereço.

Addresstype
Especifica o tipo de protocolo que envia esse OID e esse endereço de camada de rede. Esse membro só será válido se o membro AddressCount na estrutura NETWORK_ADDRESS_LIST estiver definido como um valor diferente de zero. O membro AddressCount no NETWORK_ADDRESS_LIST é definido como um valor diferente de zero para notificar um driver de miniporto ou outro driver em camadas para alterar a lista de endereços de camada de rede em uma interface associada. Os tipos de protocolo são definidos na lista anterior.

Endereço
Matriz de bytes que especificam esse endereço de camada de rede. O membro AddressLength especifica o número de bytes nessa matriz.

O transporte pode chamar a função NdisOidRequest e pode passar uma estrutura NDIS_OID_REQUEST preenchida com o código OID_GEN_NETWORK_LAYER_ADDRESSES. Essa chamada notifica uma instância associada de uma alteração nos endereços associados a essa instância. Nessa chamada, o transporte também passa a instância associada no parâmetro NdisBindingHandle . A instância associada é a associação configurada entre o transporte e o driver de miniporto subjacente ou outro driver em camadas. Para essa chamada, o transporte deve preencher o membro InformationBuffer de NDIS_OID_REQUEST com um ponteiro para uma estrutura TRANSPORT_ADDRESS. TRANSPORT_ADDRESS corresponde a uma estrutura NETWORK_ADDRESS_LIST e deve conter a lista de endereços de camada de rede.

Suponha que um transporte passe endereços por meio de um driver intermediário até um driver de miniporto subjacente. Se o driver intermediário também exigir os endereços, ele deverá anote-os antes de passá-los para o driver de miniporto subjacente. Um driver de miniporta subjacente, especialmente um driver antigo, pode retornar um valor status de NDIS_STATUS_NOT_SUPPORTED ou NDIS_STATUS_SUCCESS. O driver de miniporto subjacente propaga o status da operação de volta para o transporte. Se o driver intermediário precisar continuar recebendo notificações de endereço e, se necessário, o driver intermediário deverá alterar o status para NDIS_STATUS_SUCCESS. Caso contrário, o transporte pode interpretar NDIS_STATUS_NOT_SUPPORTED como uma indicação de que o driver de miniporto subjacente não exige que o problema de transporte seja atualizado. Se NDIS_STATUS_SUCCESS for retornado, os transportes serão obrigados a continuar notificando os drivers subjacentes de qualquer alteração nos endereços associados, incluindo adição e exclusão de endereços.

Um protocolo pode definir o membro AddressCount de TRANSPORT_ADDRESS como zero para notificar um driver de miniporto ou outro driver em camadas para limpar a lista de endereços de camada de rede em uma interface associada. Se AddressCount for definido como zero, o membro AddressType no NETWORK_ADDRESS_LIST será válido e os membros AddressType em estruturas NETWORK_ADDRESS não serão válidos. Por outro lado, um protocolo pode definir AddressCount como um valor diferente de zero para notificar um driver de miniporto ou outro driver em camadas para alterar a lista de endereços de camada de rede em uma interface associada. Nesse caso, o membro AddressType no NETWORK_ADDRESS_LIST não é válido e os membros AddressType em estruturas NETWORK_ADDRESS são válidos.

Requisitos

parâmetro

Ntddndis.h (inclua Ndis.h)

Confira também

NDIS_OID_REQUEST

NdisOidRequest

NdisOpenAdapterEx