Partager via


OID_802_3_MULTICAST_LIST

En tant que requête définie, les pilotes de protocole NDIS et overlying utilisent la requête OID OID_802_3_MULTICAST_LIST pour remplacer la liste d’adresses multidiffusion actuelle sur un adaptateur miniport. Si une adresse est présente dans la liste, cette adresse est activée pour recevoir des paquets de multidiffusion.

En tant que demande de requête, les pilotes de protocole et NDIS utilisent la requête OID OID_802_3_MULTICAST_LIST pour obtenir la liste d’adresses multidiffusion actuelle.

NDIS gère OID_802_3_MULTICAST_LIST demandes de requête pour les pilotes miniport, donc les pilotes miniport ne reçoivent jamais ces demandes de requête.

Les pilotes miniports qui prennent en charge les listes d’adresses multidiffusion doivent prendre en charge OID_802_3_MULTICAST_LIST définir des demandes.

Pour une requête définie, l'InformationBuffer membre de la structure NDIS_OID_REQUEST contient la liste d’adresses multidiffusion sous la forme d’un tableau d’adresses.

  • Chaque adresse est un tableau de 6 octets.
  • Le membre InformationBufferLength contient la longueur, en octets, du tableau InformationBuffer.
  • S’il existe des adresses dupliquées dans la liste du membre InformationBuffer, NDIS supprime les doublons avant d’envoyer la demande de jeu de OID_802_3_MULTICAST_LIST au pilote miniport.
  • Si le membre InformationBufferLength est égal à zéro, le pilote miniport doit effacer la liste d’adresses de multidiffusion.
  • Si le membre InformationBufferLength est supérieur à zéro, le pilote miniport doit remplacer toute liste d’adresses multidiffusion existante par la liste du membre InformationBuffer.

La liste d’adresses multidiffusion de l’adaptateur miniport est partagée par tous les pilotes de protocole liés à l’adaptateur miniport. NDIS contrôle l’accès à cette liste. Si plusieurs pilotes de protocole essaient de modifier la liste en même temps, NDIS combine leurs requêtes en une seule requête de définition de OID_802_3_MULTICAST_LIST, qu’il envoie au pilote miniport.

Lorsqu’un adaptateur miniport est initialisé, il réinitialise la carte réseau afin que la liste d’adresses de multidiffusion soit égale à zéro. NDIS initialise également le filtre de paquets afin qu’il n’autorise pas le pilote de protocole à recevoir des paquets de multidiffusion.

Pour recevoir un paquet de multidiffusion, le pilote de protocole doit effectuer l’une des opérations suivantes :

  • Définissez le filtre de paquets pour inclure l’indicateur de NDIS_PACKET_TYPE_MULTICAST. À tout moment, il peut désactiver la réception de paquets de multidiffusion en annulant cet indicateur. L’ordre dans lequel le pilote de protocole active la réception des paquets de multidiffusion n’est pas important. Pour plus d’informations, consultez la requête OID OID_GEN_CURRENT_PACKET_FILTER.
  • Définissez le filtre de paquets pour inclure l’indicateur de NDIS_PACKET_TYPE_ALL_MULTICAST, qui active tous les paquets de multidiffusion et effectue le filtrage lui-même.

Le pilote miniport peut définir une limite sur le nombre d’adresses de multidiffusion que la liste d’adresses de multidiffusion peut contenir. NDIS retourne NDIS_STATUS_MULTICAST_FULL si un pilote de protocole dépasse cette limite ou s’il spécifie une adresse de multidiffusion non valide.

Pour une requête de requête, NDIS retourne une liste d’adresses multidiffusion qui est l’union de toutes les listes d’adresses de multidiffusion pour toutes les liaisons de protocole.

Exigences

En-tête

Ntddndis.h (include Ndis.h)

Voir aussi

OID_802_3_ADD_MULTICAST_ADDRESS

OID_802_3_DELETE_MULTICAST_ADDRESS

OID_802_3_MAXIMUM_LIST_SIZE

OID_GEN_CURRENT_PACKET_FILTER