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