Condividi tramite


OID_802_3_MULTICAST_LIST

Come richiesta impostata, i driver di protocollo NDIS e overlying usano la richiesta OID OID_802_3_MULTICAST_LIST per sostituire l'elenco di indirizzi multicast corrente in un adattatore miniport. Se un indirizzo è presente nell'elenco, tale indirizzo è abilitato per ricevere pacchetti multicast.

Come richiesta di query, i driver di protocollo e NDIS usano la richiesta OID OID_802_3_MULTICAST_LIST per ottenere l'elenco di indirizzi multicast corrente.

NDIS gestisce OID_802_3_MULTICAST_LIST richieste di query per i driver miniport, quindi i driver miniport non ricevono mai queste richieste di query.

I driver Miniport che supportano elenchi di indirizzi multicast devono supportare OID_802_3_MULTICAST_LIST impostare le richieste.

Per una richiesta impostata, il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene l'elenco di indirizzi multicast come matrice di indirizzi.

  • Ogni indirizzo è una matrice di 6 byte.
  • Il membro InformationBufferLength contiene la lunghezza, in byte, della matrice InformationBuffer .
  • Se nell'elenco sono presenti indirizzi duplicati nel membro InformationBuffer , NDIS rimuove i duplicati prima di inviare la richiesta OID_802_3_MULTICAST_LIST set al driver miniport.
  • Se il membro InformationBufferLength è zero, il driver miniport deve cancellare l'elenco di indirizzi multicast.
  • Se il membro InformationBufferLength è maggiore di zero, il driver miniport deve sostituire qualsiasi elenco di indirizzi multicast esistente con l'elenco nel membro InformationBuffer .

L'elenco di indirizzi multicast dell'adattatore miniport è condiviso da tutti i driver di protocollo associati all'adattatore miniport. NDIS controlla l'accesso a questo elenco. Se più driver di protocollo tentano di modificare l'elenco contemporaneamente, NDIS combina le richieste in una singola richiesta di set di OID_802_3_MULTICAST_LIST, che invia al driver miniport.

Quando viene inizializzato un adattatore miniport, reimposta la scheda di interfaccia di rete in modo che l'elenco di indirizzi multicast sia zero. NDIS inizializza anche il filtro pacchetti in modo che non consenta al driver di protocollo di ricevere pacchetti multicast.

Per ricevere un pacchetto multicast, il driver del protocollo deve eseguire una delle operazioni seguenti:

  • Impostare il filtro di pacchetti per includere il flag di NDIS_PACKET_TYPE_MULTICAST . In qualsiasi momento, può disabilitare la ricezione di pacchetti multicast annullando questo flag. L'ordine in cui il driver del protocollo abilita la ricezione per i pacchetti multicast non è importante. Per altre informazioni, vedere la richiesta OID OID_GEN_CURRENT_PACKET_FILTER .
  • Impostare il filtro pacchetti per includere il flag di NDIS_PACKET_TYPE_ALL_MULTICAST , che abilita tutti i pacchetti multicast ed esegue il filtro stesso.

Il driver miniport può impostare un limite per il numero di indirizzi multicast che l'elenco di indirizzi multicast può contenere. NDIS restituisce NDIS_STATUS_MULTICAST_FULL se un driver di protocollo supera questo limite o se specifica un indirizzo multicast non valido.

Per una richiesta di query, NDIS restituisce un elenco di indirizzi multicast che rappresenta l'unione di tutti gli elenchi di indirizzi multicast per tutte le associazioni di protocollo.

Requisiti

Intestazione

Ntddndis.h (include Ndis.h)

Vedi anche

OID_802_3_ADD_MULTICAST_ADDRESS

OID_802_3_DELETE_MULTICAST_ADDRESS

OID_802_3_MAXIMUM_LIST_SIZE

OID_GEN_CURRENT_PACKET_FILTER