Freigeben über


OID_802_3_MULTICAST_LIST

Als set-Anforderung verwenden NDIS und überlying-Protokolltreiber die OID_802_3_MULTICAST_LIST OID-Anforderung, um die aktuelle Multicastadressenliste auf einem Miniportadapter zu ersetzen. Wenn eine Adresse in der Liste vorhanden ist, ist diese Adresse für den Empfang von Multicastpaketen aktiviert.

Als Abfrageanforderung verwenden NDIS und Protokolltreiber die OID_802_3_MULTICAST_LIST OID-Anforderung, um die aktuelle Multicast-Adressliste abzurufen.

NDIS verarbeitet OID_802_3_MULTICAST_LIST Abfrageanforderungen für Miniporttreiber, sodass Miniporttreiber diese Abfrageanforderungen nie erhalten.

Miniporttreiber, die Multicastadressenlisten unterstützen, müssen OID_802_3_MULTICAST_LIST Festlegen von Anforderungen unterstützen.

Bei einer Setanforderung enthält das InformationBuffer- Mitglied der NDIS_OID_REQUEST-Struktur die Multicastadressenliste als Array von Adressen.

  • Jede Adresse ist ein Array von 6 Byte.
  • Das InformationBufferLength Member enthält die Länge des InformationBuffer Arrays in Byte.
  • Wenn in der Liste im InformationBuffer Member doppelte Adressen vorhanden sind, entfernt NDIS die Duplikate, bevor die OID_802_3_MULTICAST_LIST set-Anforderung an den Miniporttreiber gesendet wird.
  • Wenn der InformationBufferLength Member null ist, muss der Miniporttreiber die Multicastadressenliste löschen.
  • Wenn das InformationBufferLength-Element größer als 0 ist, muss der Miniporttreiber eine vorhandene Multicastadressenliste durch die Liste im InformationBuffer Member ersetzen.

Die Multicastadressenliste des Miniportadapters wird von allen Protokolltreibern gemeinsam verwendet, die an den Miniportadapter gebunden sind. NDIS steuert den Zugriff auf diese Liste. Wenn mehrere Protokolltreiber versuchen, die Liste gleichzeitig zu ändern, kombiniert NDIS ihre Anforderungen in einer einzelnen OID_802_3_MULTICAST_LIST Satzanforderung, die sie an den Miniporttreiber sendet.

Wenn ein Miniportadapter initialisiert wird, wird die NIC zurückgesetzt, sodass die Multicastadressenliste null ist. NDIS initialisiert auch den Paketfilter, sodass der Protokolltreiber keine Multicastpakete empfangen kann.

Um ein Multicastpaket zu empfangen, muss der Protokolltreiber später eine der folgenden Aktionen ausführen:

  • Legen Sie den Paketfilter so fest, dass es das NDIS_PACKET_TYPE_MULTICAST Flag enthält. Sie kann den Multicast-Paketempfang jederzeit deaktivieren, indem diese Kennzeichnung abgebrochen wird. Die Reihenfolge, in der der Protokolltreiber den Empfang für Multicastpakete ermöglicht, ist nicht wichtig. Weitere Informationen finden Sie in der OID_GEN_CURRENT_PACKET_FILTER OID-Anforderung.
  • Legen Sie den Paketfilter so fest, dass es das NDIS_PACKET_TYPE_ALL_MULTICAST-Flag enthält, das alle Multicastpakete aktiviert, und führen Sie die Filterung selbst aus.

Der Miniporttreiber kann einen Grenzwert für die Anzahl der Multicastadressen festlegen, die die Multicast-Adressliste enthalten kann. NDIS gibt NDIS_STATUS_MULTICAST_FULL zurück, wenn ein Protokolltreiber diesen Grenzwert überschreitet oder eine ungültige Multicastadresse angibt.

Bei einer Abfrageanforderung gibt NDIS eine Multicast-Adressliste zurück, die die Vereinigung aller Multicast-Adresslisten für alle Protokollbindungen darstellt.

Anforderungen

Kopfball

Ntddndis.h (include Ndis.h)

Siehe auch

OID_802_3_ADD_MULTICAST_ADDRESS

OID_802_3_DELETE_MULTICAST_ADDRESS

OID_802_3_MAXIMUM_LIST_SIZE

OID_GEN_CURRENT_PACKET_FILTER