OID_802_3_MULTICAST_LIST
En tant que requête définie, les pilotes de protocole NDIS et de surlying utilisent la demande OID OID_802_3_MULTICAST_LIST pour remplacer la liste d’adresses de 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 requête, les pilotes NDIS et de protocole utilisent la OID_802_3_MULTICAST_LIST demande OID pour obtenir la liste d’adresses de multidiffusion actuelle.
NDIS gère OID_802_3_MULTICAST_LIST demandes de requête pour les pilotes miniport, de sorte que les pilotes miniports ne reçoivent jamais ces requêtes.
Les pilotes miniport qui prennent en charge les listes d’adresses multidiffusion doivent prendre en charge OID_802_3_MULTICAST_LIST demandes de définition.
Pour une demande d’ensemble, le membre InformationBuffer de la structure NDIS_OID_REQUEST contient la liste d’adresses de multidiffusion sous forme de tableau d’adresses.
- Chaque adresse est un tableau de 6 octets.
- Le membre InformationBufferLength contient la longueur, en octets, du tableau InformationBuffer .
- S’il y a des adresses en double dans la liste dans le membre InformationBuffer , NDIS supprime les doublons avant d’envoyer la demande de OID_802_3_MULTICAST_LIST définir 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 de multidiffusion existante par la liste dans le 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 OID_802_3_MULTICAST_LIST demande de jeu, 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 ne permette pas au pilote de protocole de 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 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 demande OID OID_GEN_CURRENT_PACKET_FILTER .
- Définissez le filtre de paquets pour qu’il inclue l’indicateur NDIS_PACKET_TYPE_ALL_MULTICAST , qui active tous les paquets de multidiffusion, et effectuez 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, 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.
Spécifications
En-tête |
Ntddndis.h (inclure Ndis.h) |
Voir aussi
OID_802_3_ADD_MULTICAST_ADDRESS