次の方法で共有


OID_GEN_CURRENT_PACKET_FILTER

クエリとして、OID_GEN_CURRENT_PACKET_FILTER OID は、ミニポート ドライバーからの表示を受信しているネット パケットの種類を報告します。

セットとして、OID_GEN_CURRENT_PACKET_FILTER OID は、プロトコルがミニポート ドライバーからの表示を受信するネット パケットの種類を指定します。

バージョン情報

Windows Vista 以降のバージョンの Windows
サポート対象。

NDIS 6.0 以降のミニポート ドライバー
必須。 (「解説」を参照してください)。

NDIS 5.1 ミニポート ドライバー
必須。

Windows XP
サポート対象。

NDIS 5.1 ミニポート ドライバー
必須。

解説

NDIS 6.0 以降のミニポート ドライバーの場合、クエリは要求されず、セットは必須です。 NDIS は、ミニポート ドライバーのクエリを処理します。 ミニポート ドライバーは、初期化中にパケット フィルター情報を報告します。

ミニポート ドライバーは、システムがフィルター ライブラリを提供する、メディアのタイプを報告します。 パケット フィルターは、OR 操作を使用して、次のタイプを包括的に結合します。

NDIS_PACKET_TYPE_DIRECTED
ダイレクト パケット。 ダイレクト パケットには、NIC のステーション アドレスと同じ宛先アドレスが含まれています。

NDIS_PACKET_TYPE_MULTICAST
マルチキャスト アドレス 一覧のアドレスに送信されるマルチキャスト アドレス パケット。

プロトコル ドライバーは、マルチキャストまたは機能アドレス パケット タイプを指定することで、イーサネット (802.3) マルチキャスト パケットを受信できます。 マルチキャスト アドレス一覧または機能アドレスを設定すると、NIC ドライバーで有効にするマルチキャスト アドレス グループが決まります。

NDIS_PACKET_TYPE_ALL_MULTICAST
マルチキャスト アドレス一覧に列挙されたマルチキャスト アドレス パケットだけでなく、すべてのマルチキャスト アドレス パケット。

NDIS_PACKET_TYPE_BROADCAST
ブロードキャスト パケット。

NDIS_PACKET_TYPE_PROMISCUOUS
VLAN フィルタリングが有効かどうか、VLAN 識別子が一致するかどうかに関係なく、すべてのパケットを指定します。

NDIS_PACKET_TYPE_ALL_FUNCTIONAL
現在の機能アドレス内の機能アドレス パケットだけでなく、すべての機能アドレス パケット。

NDIS_PACKET_TYPE_ALL_LOCAL
インストールされているプロトコルによって送信されるすべてのパケットと、特定の NdisBindingHandle によって識別される NIC によって示されるすべてのパケット。

NDIS_PACKET_TYPE_FUNCTIONAL
現在の機能アドレスに含まれるアドレスに送信される機能アドレス パケット。

NDIS_PACKET_TYPE_GROUP
現在のグループ アドレスに送信されるパケット。

NDIS_PACKET_TYPE_MAC_FRAME
トークン リング NIC が受信する NIC ドライバー フレーム。

NDIS_PACKET_TYPE_SMT
FDDI NIC が受信する SMT パケット。

NDIS_PACKET_TYPE_SOURCE_ROUTING
すべての送信元ルート指定パケット。 プロトコル ドライバーがこのビットを設定する場合、NDIS ライブラリは、送信元ルート指定ブリッジとして動作しようとします。

メディアの種類が NdisMedium802_3 または NdisMedium802_5 であるミニポート アダプターの場合、NDIS は NdisOpenAdapterEx 関数の呼び出し中にマルチキャストおよび機能アドレスと共に、パケット受信を無効にします。

他のすべてのメディアの種類のミニポート アダプターの場合、プロトコル ドライバーは NdisOpenAdapterEx の呼び出し中にいつでもパケットの受信を開始できます。 プロトコルは、NdisOpenAdapterEx が返される前でもパケットを受信できることに注意してください。 一般に、パケット フィルタリングはベスト エフォートであり、パケット フィルターが 0 の場合でも受信指示を処理するためにプロトコル ドライバーを準備する必要があります。

クエリの場合、NDIS は、OR 演算子を使用して結合されたバインディング フィルターを返します。

セットの場合、指定されたパケット フィルターは、バインディングの前のパケット フィルターを置き換えます。 ミニポート ドライバーが以前にパケットの種類を有効にしたが、プロトコル ドライバーが新しいフィルターでその種類を指定していない場合、プロトコル ドライバーはこの種類のパケットを受信しません。

ミニポート アダプターのメディアの種類が NdisMedium802_3 または NdisMedium802_5 の場合、ミニポート ドライバーがこのクエリに応答して特定のパケットの種類のビットを設定しないと、プロトコル ドライバーは、その種類のパケットを受信しません。 そのため、プロトコル ドライバーは、0 のフィルターを使用して NdisOidRequest または NdisCoOidRequest 関数を呼び出すことによってパケット受信を無効にすることができます。

他のすべてのメディアの種類のミニポート アダプターの場合、NDIS はパケットの種類をチェックしません。 これらのメディアの種類では、プロトコル ドライバーは、0 のフィルターを指定してパケット受信を無効にできません。

ミニポート ドライバーの MiniportInitializeEx 関数が呼び出されると、ミニポート ドライバーのパケット フィルターは 0 に設定する必要があります。 パケット フィルターが 0 の場合、受信インジケーターは無効になります。 ミニポート ドライバーの MiniportInitializeEx 関数が返された後、プロトコル ドライバーは、0 以外の値に OID_GEN_CURRENT_PACKET_FILTER を設定できます。これにより、ミニポート ドライバーは、そのプロトコルに受信したパケットを示すことができます。

NDIS_PACKET_TYPE_PROMISCUOUS ビットで無差別モードが有効になっている場合、プロトコル ドライバーは、送信ネットワーク ノードがパケットを送信しない場合でもパケットを受信し続けます。 その後、NDIS は、NIC が受信するすべてのパケットをプロトコル ドライバーに送信します。

特定のパケット フィルターを設定しても、同じ NIC にバインドされている (または上にある) 他のプロトコル ドライバーのパケット フィルターは変更されません。 たとえば、1 つのバインドされたプロトコルで無差別モードが有効な場合、他のバインドされたプロトコル ドライバーは、独自のパケット フィルターで明示的に要求されていないパケットを受信しません。

ネイティブ 802.11 パケット フィルター

ネイティブ 802.11 ミニポート ドライバーは、次の標準的なパケット フィルターの種類のみをサポートする必要があります。

  • NDIS_PACKET_TYPE_DIRECTED

  • NDIS_PACKET_TYPE_MULTICAST

  • NDIS_PACKET_TYPE_BROADCAST

  • NDIS_PACKET_TYPE_PROMISCUOUS

有効にすると、これらの標準パケット フィルターは 802.11 データ パケットにのみ適用されます。

さらに、ネイティブ 802.11 ミニポート ドライバーは、ネイティブ 802.11 メディアに固有の次のパケット フィルターの種類をサポートする必要があります。

NDIS_PACKET_TYPE_802_11_RAW_DATA
802.11 メディア アクセス制御 (MAC) プロトコル データ ユニット (MPDU) フレーム。このフレームには、802.11 ステーションで受信した形式のすべてのデータが含まれます。 このフィルターが設定されている場合、ドライバーは、MPDU フラグメントから再構築された MAC サービス データ ユニット (MSDU) パケットを示す前に、変更されていないすべての MPDU フラグメントを示す必要があります。

MPDU フラグメントが暗号化されている場合は、指定する前にフラグメントを複合化しないでください。 ただし、ミニポート ドライバーは、再構築し、MSDU パケットを示す前に、各 MPDU フラグメントを復号化する必要があります。

有効にすると、このフィルターの種類は、NDIS_PACKET_TYPE_DIRECTED や NDIS_PACKET_TYPE_BROADCAST などの他の標準パケット フィルターにのみ影響します。

未加工 802.11 データ パケットを示す方法の詳細については、「未加工 802.11 パケットの表示」を参照してください。

NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT
ダイレクト 802.11 管理パケット。 ダイレクト パケットには、NIC のステーション アドレスと同じ宛先アドレスが含まれています。

NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT
マルチキャスト アドレス一覧のアドレスに送信されるマルチキャスト 802.11 管理パケット。

NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT
802.11 MAC ヘッダーの宛先アドレスがマルチキャスト アドレス一覧にあるかどうかに関係なく、802.11 ステーションによって受信されるすべてのマルチキャスト 802.11 管理パケット。

NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT
802.11 ステーションが受信したブロードキャスト 802.11 管理パケット。

NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT
802.11 ステーションが受信したすべての 802.11 管理パケット。

NDIS_PACKET_TYPE_802_11_RAW_MGMT
802.11 MPDU 管理フレーム。802.11 ステーションで受信した形式のすべてのデータが含まれます。 このフィルターが設定されている場合、ドライバーは、MPDU フラグメントから再構築された MAC 管理プロトコル データ ユニット (MMPDU) パケットを示す前に、変更されていないすべての MPDU フラグメントを示す必要があります。

有効にした場合、このフィルターの種類は、NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT や NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT など、他の 802.11 管理パケット フィルターにのみ影響します。

未加工 802.11 管理パケットを示す方法の詳細については、「未加工 802.11 パケットの表示」を参照してください。

NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL
ダイレクト 802.11 コントロール パケット。 ダイレクト パケットには、NIC のステーション アドレスと同じ宛先アドレスが含まれています。

NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL
802.11 ステーションが受信したブロードキャスト 802.11 コントロール パケット。

NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL
802.11 ステーションが受信したすべての 802.11 コントロール パケット。

ミニポート ドライバーがネイティブ 802.11 ネットワーク モニター (NetMon) または拡張可能なアクセス ポイント (AP) モードで動作している場合、ドライバーは、OID_GEN_CURRENT_PACKET_FILTER のセット要求を通じて次のパケット フィルターを有効にする必要があります。

  • NDIS_PACKET_TYPE_PROMISCUOUS

  • NDIS_PACKET_TYPE_802_11_RAW_DATA

  • NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT

  • NDIS_PACKET_TYPE_802_11_RAW_MGMT

  • NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL

NetMon 以外の他のネイティブ 802.11 モードで動作しているミニポート ドライバーは、NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL を除き、これらのパケット フィルター設定を有効にすることはできません。 NetMon モードで動作していないミニポート ドライバーは、必要に応じて、OID_GEN_CURRENT_PACKET_FILTER のセット要求を通じて NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL を有効にすることができます。

ミニポート ドライバーが NetMon 以外のネイティブ 802.11 モードであり、OID_GEN_CURRENT_PACKET_FILTER が設定されている場合、OID データで無差別または未加工のフィルター設定が有効になっている場合、ドライバーはセット要求に失敗できません。

NetMon および ExtAP の動作モードの詳細については、次のトピックを参照してください。

ネットワーク モニターの動作モード

拡張可能なアクセス ポイントの動作モード

要件

ヘッダー

Ntddndis.h (Ndis.h を含む)

関連項目

MiniportInitializeEx

NdisCoOidRequest

NdisOidRequest

NdisOpenAdapterEx