次の方法で共有


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

OID_802_3_DELETE_MULTICAST_ADDRESS

OID_802_3_MAXIMUM_LIST_SIZE

OID_GEN_CURRENT_PACKET_FILTER