Partilhar via


OID_802_3_MULTICAST_LIST

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

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

O NDIS lida com solicitações de consulta OID_802_3_MULTICAST_LIST para drivers de miniporta, portanto, os drivers de miniporta nunca recebem essas solicitações de consulta.

Os drivers de miniporta que suportam listas de endereços de multicast devem suportar solicitações OID_802_3_MULTICAST_LIST definidas.

Para uma solicitação definida, o InformationBuffer membro da estrutura NDIS_OID_REQUEST contém a lista de endereços de 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 do InformationBuffer, o NDIS removerá as duplicatas antes de enviar a solicitação de conjunto de OID_802_3_MULTICAST_LIST para o driver de miniporta.
  • Se o membro InformationBufferLength for zero, o driver de miniporta deverá limpar a lista de endereços de multicast.
  • Se o membro InformationBufferLength for maior que zero, o driver de miniporta deverá substituir qualquer lista de endereços de multicast existente pela lista no membro InformationBuffer.

A lista de endereços multicast do adaptador de miniporta é compartilhada por todos os drivers de protocolo vinculados ao adaptador de miniporta. O NDIS controla o acesso a esta 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 de conjunto de OID_802_3_MULTICAST_LIST, que ele enviará para o driver de miniporta.

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

Para receber um pacote multicast, o driver de protocolo deve posteriormente seguir um destes procedimentos:

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

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

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

Requerimentos

Cabeçalho

Ntddndis.h (inclui Ndis.h)

Ver 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