Udostępnij za pośrednictwem


OID_802_3_MULTICAST_LIST

W ramach ustawionego żądania sterowniki NDIS i overlying protokołu używają żądania OID_802_3_MULTICAST_LIST OID, aby zastąpić bieżącą listę adresów multiemisji na karcie miniportu. Jeśli adres znajduje się na liście, ten adres jest włączony do odbierania pakietów multiemisji.

Jako żądanie zapytania sterowniki NDIS i protokołów używają żądania identyfikatora OID OID_802_3_MULTICAST_LIST, aby uzyskać bieżącą listę adresów multiemisji.

Usługa NDIS obsługuje OID_802_3_MULTICAST_LIST żądań zapytań dotyczących sterowników miniportu, więc sterowniki miniportu nigdy nie odbierają tych żądań zapytań.

Sterowniki Miniport, które obsługują listy adresów multiemisji, muszą obsługiwać OID_802_3_MULTICAST_LIST zestaw żądań.

W przypadku ustawionego żądania element InformationBuffer struktury NDIS_OID_REQUEST zawiera listę adresów multiemisji jako tablicę adresów.

  • Każdy adres jest tablicą 6 bajtów.
  • Element członkowski informationBufferLength zawiera długość InformationBuffer tablicy.
  • Jeśli na liście znajdują się zduplikowane adresy na elementu członkowskiego InformationBuffer, usługa NDIS usuwa duplikaty przed wysłaniem OID_802_3_MULTICAST_LIST ustawić żądanie do sterownika miniportu.
  • Jeśli element członkowski InformationBufferLength wynosi zero, sterownik miniportu musi wyczyścić listę adresów multiemisji.
  • Jeśli element członkowski InformationBufferLength jest większy niż zero, sterownik miniportu musi zastąpić dowolną istniejącą listę adresów multiemisji listą na liście w InformationBuffer elementu członkowskiego.

Lista adresów multiemisji karty miniport jest współużytkowana przez wszystkie sterowniki protokołu powiązane z kartą miniportu. Usługa NDIS kontroluje dostęp do tej listy. Jeśli wiele sterowników protokołów próbuje jednocześnie zmodyfikować listę, usługa NDIS łączy żądania w jeden OID_802_3_MULTICAST_LIST ustawić żądanie, które wysyła do sterownika miniportu.

Po zainicjowaniu karty miniportu karta sieciowa resetuje kartę sieciową, aby lista adresów multiemisji była równa zero. NDIS inicjuje również filtr pakietów, dzięki czemu sterownik protokołu nie może odbierać pakietów multiemisji.

Aby otrzymać pakiet multiemisji, sterownik protokołu musi później wykonać jedną z następujących czynności:

  • Ustaw filtr pakietów, aby uwzględnić flagę NDIS_PACKET_TYPE_MULTICAST. W dowolnym momencie może wyłączyć odbieranie pakietów multiemisji, anulując tę flagę. Kolejność, w jakiej sterownik protokołu umożliwia odbiór pakietów multiemisji, nie jest ważna. Aby uzyskać więcej informacji, zobacz żądanie identyfikatora OID OID_GEN_CURRENT_PACKET_FILTER.
  • Ustaw filtr pakietów, aby uwzględnić flagę NDIS_PACKET_TYPE_ALL_MULTICAST, która włącza wszystkie pakiety multiemisji i filtruje się.

Sterownik miniportu może ustawić limit liczby adresów multiemisji, które może zawierać lista adresów multiemisji. Funkcja NDIS zwraca NDIS_STATUS_MULTICAST_FULL, jeśli sterownik protokołu przekracza ten limit lub jeśli określa nieprawidłowy adres multiemisji.

W przypadku żądania zapytania usługa NDIS zwraca listę adresów multiemisji, która jest unią wszystkich list adresów multiemisji dla wszystkich powiązań protokołu.

Wymagania

Nagłówek

Ntddndis.h (m.in. Ndis.h)

Zobacz też

OID_802_3_ADD_MULTICAST_ADDRESS

OID_802_3_DELETE_MULTICAST_ADDRESS

OID_802_3_MAXIMUM_LIST_SIZE

OID_GEN_CURRENT_PACKET_FILTER