OID_802_3_MULTICAST_LIST
Como solicitud establecida, los controladores de protocolo NDIS y los controladores de protocolo excesivo usan la solicitud de OID de OID_802_3_MULTICAST_LIST para reemplazar la lista de direcciones de multidifusión actual en un adaptador de minipuerto. Si una dirección está presente en la lista, esa dirección está habilitada para recibir paquetes de multidifusión.
Como solicitud de consulta, los controladores de protocolo y NDIS usan la solicitud de OID de OID_802_3_MULTICAST_LIST para obtener la lista de direcciones de multidifusión actual.
NDIS controla OID_802_3_MULTICAST_LIST solicitudes de consulta para controladores de minipuerto, por lo que los controladores de minipuerto nunca reciben estas solicitudes de consulta.
Los controladores de miniporte que admiten listas de direcciones de multidifusión deben admitir OID_802_3_MULTICAST_LIST establecer solicitudes.
Para una solicitud set, el miembro InformationBuffer de la estructura NDIS_OID_REQUEST contiene la lista de direcciones de multidifusión como una matriz de direcciones.
- Cada dirección es una matriz de 6 bytes.
- El miembro InformationBufferLength contiene la longitud, en bytes, de la matriz InformationBuffer .
- Si hay direcciones duplicadas en la lista del miembro InformationBuffer , NDIS quita los duplicados antes de enviar la solicitud OID_802_3_MULTICAST_LIST establecer al controlador de miniport.
- Si el miembro InformationBufferLength es cero, el controlador de minipuerto debe borrar la lista de direcciones de multidifusión.
- Si el miembro InformationBufferLength es mayor que cero, el controlador de minipuerto debe reemplazar cualquier lista de direcciones de multidifusión existente por la lista del miembro InformationBuffer .
Todos los controladores de protocolo que están enlazados al adaptador de minipuerto comparten la lista de direcciones de multidifusión del adaptador de minipuerto. NDIS controla el acceso a esta lista. Si varios controladores de protocolo intentan modificar la lista al mismo tiempo, NDIS combina sus solicitudes en una única solicitud establecida OID_802_3_MULTICAST_LIST, que envía al controlador de miniporte.
Cuando se inicializa un adaptador de minipuerto, restablece la NIC para que la lista de direcciones de multidifusión sea cero. NDIS también inicializa el filtro de paquetes para que no permita que el controlador de protocolo reciba paquetes de multidifusión.
Para recibir un paquete de multidifusión, el controlador de protocolo debe realizar más adelante una de las siguientes acciones:
- Establezca el filtro de paquetes para incluir la marca NDIS_PACKET_TYPE_MULTICAST . En cualquier momento, puede deshabilitar la recepción de paquetes de multidifusión cancelando esta marca. El orden en que el controlador de protocolo habilita la recepción de paquetes de multidifusión no es importante. Para obtener más información, consulte la solicitud OID_GEN_CURRENT_PACKET_FILTER OID.
- Establezca el filtro de paquetes para incluir la marca NDIS_PACKET_TYPE_ALL_MULTICAST , que habilita todos los paquetes de multidifusión y realiza el filtrado.
El controlador de minipuerto puede establecer un límite en el número de direcciones de multidifusión que puede contener la lista de direcciones de multidifusión. NDIS devuelve NDIS_STATUS_MULTICAST_FULL si un controlador de protocolo supera este límite o si especifica una dirección de multidifusión no válida.
Para una solicitud de consulta, NDIS devuelve una lista de direcciones de multidifusión que es la unión de todas las listas de direcciones de multidifusión para todos los enlaces de protocolo.
Requisitos
Encabezado |
Ntddndis.h (incluye Ndis.h) |
Consulte también
OID_802_3_ADD_MULTICAST_ADDRESS