OID_802_3_MULTICAST_LIST
セット要求として、NDIS および上位のプロトコル ドライバーは、OID_802_3_MULTICAST_LIST OID 要求を使用して、ミニポート アダプターの現在のマルチキャスト アドレス リストを置き換えます。 アドレスがリストに存在する場合、そのアドレスはマルチキャスト パケットの受信を有効にします。
クエリ要求として、NDIS ドライバーとプロトコル ドライバーは、OID_802_3_MULTICAST_LIST OID 要求を使用して現在のマルチキャスト アドレス リストを取得します。
NDIS はミニポート ドライバー OID_802_3_MULTICAST_LIST クエリ要求を処理するために、ミニポート ドライバーはこれらのクエリ要求を受け取ることはありません。
マルチキャスト アドレスリストをサポートするミニポート ドライバーは、OID_802_3_MULTICAST_LIST セット要求をサポートする必要があります。
セット要求の場合、NDIS_OID_REQUEST 構造の InformationBuffer メンバーには、アドレスの配列としてマルチキャスト アドレス リストが含まれます。
- 各アドレスは 6 バイトの配列です。
- InformationBufferLength メンバーには、InformationBuffer 配列の長さがバイト単位で含まれています。
- InformationBuffer メンバーのリストに重複するアドレスがある場合、NDIS は、OID_802_3_MULTICAST_LIST セット要求をミニポート ドライバーに送信する前に、重複するアドレスを削除します。
- InformationBufferLength メンバーが 0 の場合、ミニポート ドライバーはマルチキャスト アドレスリストをクリアする必要があります。
- InformationBufferLength メンバーが 0 より多い場合、ミニポート ドライバーは、既存のマルチキャスト アドレスリストを InformationBuffer メンバーのリストに置き換える必要があります。
ミニポート アダプターのマルチキャスト アドレスリストは、ミニポート アダプターにバインドされているすべてのプロトコル ドライバーによって共有されます。 NDIS は、このリストへのアクセスを制御します。 複数のプロトコル ドライバーが同時にリストを変更しようとすると、NDIS は、それらの要求を 1 つの OID_802_3_MULTICAST_LIST セット要求にまとめ、 ミニポート ドライバーに送信します。
ミニポート アダプターが初期化されると、マルチキャスト アドレスリストが 0 になるように NIC がリセットされます。 NDIS は、プロトコル ドライバーがマルチキャスト パケットを受信できないように、パケット フィルターも初期化します。
マルチキャスト パケットを受信するには、プロトコル ドライバーは後で以下のいずれかの操作を行う必要があります。
- NDIS_PACKET_TYPE_MULTICAST フラグを含むようにパケット フィルターを設定します。 このフラグを解除することで、いつでもマルチキャスト パケット受信を無効にできます。 プロトコル ドライバーがマルチキャスト パケットの受信を有効にする順序は重要ではありません。 詳細については、OID_GEN_CURRENT_PACKET_FILTER OID 要求を参照してください。
- すべてのマルチキャスト パケットを有効にする NDIS_PACKET_TYPE_ALL_MULTICAST フラグを含むようにパケット フィルターを設定し、それ自体をフィルタリングします。
ミニポート ドライバーは、マルチキャスト アドレスリストに含めることができるマルチキャスト アドレスの数の制限を設定できます。 NDIS は、 プロトコル ドライバーがこの制限を超えるか、または無効なマルチキャスト アドレスを指定した場合、NDIS_STATUS_MULTICAST_FULL を返します。
クエリ要求に対して、NDIS は、すべてのプロトコル バインディングに対するすべてのマルチキャスト アドレス リストを結合したマルチキャスト アドレス リストを返します。
要件
ヘッダー |
Ntddndis.h (Ndis.h を含む) |
関連項目
OID_802_3_ADD_MULTICAST_ADDRESS