OID_802_3_MULTICAST_LIST
Als Setanforderung verwenden NDIS- und überlastende 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 Multicastadressliste abzurufen.
NDIS verarbeitet OID_802_3_MULTICAST_LIST Abfrageanforderungen für Miniporttreiber, sodass Miniporttreiber diese Abfrageanforderungen nie erhalten.
Miniporttreiber, die Multicastadresslisten unterstützen, müssen OID_802_3_MULTICAST_LIST Festlegen von Anforderungen unterstützen.
Für eine Setanforderung enthält das InformationBuffer-Element der NDIS_OID_REQUEST-Struktur die Multicastadressenliste als Array von Adressen.
- Jede Adresse ist ein Array von 6 Bytes.
- Das InformationBufferLength-Element enthält die Länge des InformationBuffer-Arrays in Bytes.
- Wenn in der Liste im InformationBuffer-Element doppelte Adressen enthalten sind, entfernt NDIS die Duplikate, bevor die OID_802_3_MULTICAST_LIST Set-Anforderung an den Miniporttreiber gesendet wird.
- Wenn das InformationBufferLength-Element 0 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-Element ersetzen.
Die Multicastadressenliste des Miniportadapters wird von allen Protokolltreibern freigegeben, 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 set-Anforderung, die an den Miniporttreiber gesendet wird.
Wenn ein Miniportadapter initialisiert wird, wird die NIC zurückgesetzt, sodass die Multicastadressenliste 0 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 das NDIS_PACKET_TYPE_MULTICAST-Flag enthalten ist. Es kann jederzeit den Multicastpaketempfang deaktivieren, indem dieses Flag 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 er das NDIS_PACKET_TYPE_ALL_MULTICAST-Flag enthält, das alle Multicastpakete aktiviert, und führen Sie die Filterung selbst durch.
Der Miniporttreiber kann ein Limit für die Anzahl von Multicastadressen festlegen, die die Multicastadressenliste enthalten kann. NDIS gibt NDIS_STATUS_MULTICAST_FULL zurück, wenn ein Protokolltreiber diesen Grenzwert überschreitet oder eine ungültige Multicastadresse angibt.
Für eine Abfrageanforderung gibt NDIS eine Multicastadressliste zurück, die die Vereinigung aller Multicastadresslisten für alle Protokollbindungen darstellt.
Anforderungen
Header |
Ntddndis.h (include Ndis.h) |
Weitere Informationen
OID_802_3_ADD_MULTICAST_ADDRESS