Compartilhar via


OID_802_3_MULTICAST_LIST

Como uma solicitação definida, os drivers de protocolo NDIS e overlying usam a solicitação OID OID_802_3_MULTICAST_LIST para substituir a lista de endereços multicast atual em um adaptador de miniport. Se um endereço estiver presente na lista, esse endereço será habilitado para receber pacotes multicast.

Como uma solicitação de consulta, os drivers de protocolo e NDIS usam o OID_802_3_MULTICAST_LIST solicitação OID para obter a lista de endereços multicast atual.

O NDIS manipula OID_802_3_MULTICAST_LIST solicitações de consulta para drivers de miniporte, portanto, os drivers de miniporte nunca recebem essas solicitações de consulta.

Os drivers de miniport que dão suporte a listas de endereços multicast devem dar suporte a OID_802_3_MULTICAST_LIST definir solicitações.

Para uma solicitação definida, o membro InformationBuffer da estrutura NDIS_OID_REQUEST contém a lista de endereços multicast como uma matriz de endereços.

  • Cada endereço é uma matriz de 6 bytes.
  • O membro InformationBufferLength contém o comprimento, em bytes, da matriz InformationBuffer .
  • Se houver endereços duplicados na lista no membro InformationBuffer , o NDIS removerá as duplicatas antes de enviar o OID_802_3_MULTICAST_LIST definir a solicitação para o driver de miniporto.
  • Se o membro InformationBufferLength for zero, o driver de miniporto deverá limpar a lista de endereços multicast.
  • Se o membro InformationBufferLength for maior que zero, o driver de miniporto deverá substituir qualquer lista de endereços multicast existente pela lista no membro InformationBuffer .

A lista de endereços multicast do adaptador de miniporto é compartilhada por todos os drivers de protocolo associados ao adaptador de miniporte. O NDIS controla o acesso a essa lista. Se vários drivers de protocolo tentarem modificar a lista ao mesmo tempo, o NDIS combinará suas solicitações em uma única solicitação OID_802_3_MULTICAST_LIST definida, que ela envia para o driver de miniporto.

Quando um adaptador de miniporto é inicializado, ele redefine a NIC para que a lista de endereços multicast seja zero. O NDIS também inicializa o filtro de pacote para que ele não permita que o driver de protocolo receba pacotes multicast.

Para receber um pacote multicast, o driver de protocolo deve executar um dos seguintes procedimentos:

  • Defina o filtro de pacote para incluir o sinalizador NDIS_PACKET_TYPE_MULTICAST . A qualquer momento, ele pode desabilitar a recepção de pacotes multicast cancelando esse sinalizador. A ordem na qual o driver de protocolo habilita a recepção para pacotes multicast não é importante. Para obter mais informações, consulte o OID_GEN_CURRENT_PACKET_FILTER solicitação de OID.
  • Defina o filtro de pacote para incluir o sinalizador NDIS_PACKET_TYPE_ALL_MULTICAST , que habilita todos os pacotes multicast e faça a própria filtragem.

O driver de miniporto pode definir um limite no número de endereços multicast que a lista de endereços multicast pode conter. O NDIS retornará NDIS_STATUS_MULTICAST_FULL se um driver de protocolo exceder esse limite ou se especificar um endereço multicast inválido.

Para uma solicitação de consulta, o NDIS retorna uma lista de endereços multicast que é a união de todas as listas de endereços multicast para todas as associações de protocolo.

Requisitos

parâmetro

Ntddndis.h (inclua Ndis.h)

Confira também

OID_802_3_ADD_MULTICAST_ADDRESS

OID_802_3_DELETE_MULTICAST_ADDRESS

OID_802_3_MAXIMUM_LIST_SIZE

OID_GEN_CURRENT_PACKET_FILTER