NDIS_RECEIVE_FILTER_CAPABILITIES 構造体 (ntddndis.h)

NDIS_RECEIVE_FILTER_CAPABILITIES構造体は、ネットワーク アダプターの受信フィルター機能を指定します。

NDIS 受信フィルターは、次の NDIS インターフェイスで使用されます。

構文

typedef struct _NDIS_RECEIVE_FILTER_CAPABILITIES {
  NDIS_OBJECT_HEADER Header;
  ULONG              Flags;
  ULONG              EnabledFilterTypes;
  ULONG              EnabledQueueTypes;
  ULONG              NumQueues;
  ULONG              SupportedQueueProperties;
  ULONG              SupportedFilterTests;
  ULONG              SupportedHeaders;
  ULONG              SupportedMacHeaderFields;
  ULONG              MaxMacHeaderFilters;
  ULONG              MaxQueueGroups;
  ULONG              MaxQueuesPerQueueGroup;
  ULONG              MinLookaheadSplitSize;
  ULONG              MaxLookaheadSplitSize;
  ULONG              SupportedARPHeaderFields;
  ULONG              SupportedIPv4HeaderFields;
  ULONG              SupportedIPv6HeaderFields;
  ULONG              SupportedUdpHeaderFields;
  ULONG              MaxFieldTestsPerPacketCoalescingFilter;
  ULONG              MaxPacketCoalescingFilters;
  ULONG              NdisReserved;
} NDIS_RECEIVE_FILTER_CAPABILITIES, *PNDIS_RECEIVE_FILTER_CAPABILITIES;

メンバー

Header

NDIS_RECEIVE_FILTER_CAPABILITIES構造体のNDIS_OBJECT_HEADER構造体。 ドライバーは、Header が指定する構造体の Type メンバーをNDIS_OBJECT_TYPE_DEFAULTに設定します。

NDIS_RECEIVE_FILTER_CAPABILITIES構造体のバージョンを示すために、ドライバーは Revision メンバーを次のいずれかの値に設定します。

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2

追加
NDIS 6.30 以降のさまざまなメンバー。

ドライバーは 、Size メンバーをNDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2に設定します。

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1

NDIS 6.20 の元のバージョン。

ドライバーは 、Size メンバーをNDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1に設定します。

Flags

フラグのビットごとの OR。 このメンバーは NDIS 用に予約されています。

EnabledFilterTypes

有効にする受信フィルターの種類を指定するフラグのビットごとの OR。 次のフィルターの種類のフラグが有効です。

NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED

VMQ フィルターを有効にすることを指定します。

メモ ミニポート ドライバーが SR-IOV インターフェイスを使用するように有効になっている場合、ミニポート ドライバーは、このフラグを設定する必要があります。
 

NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED

NDIS パケット結合受信フィルターを有効にすることを指定します。

EnabledQueueTypes

有効になっている受信キューの種類を指定するフラグのビットごとの OR。 次のキューの種類のフラグが有効です。

NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED

仮想マシン (VM) キューが有効になっていることを指定します。 VM キューは、ミニポート ドライバーで VMQ インターフェイスの使用が有効になっている場合に使用されます。

メモ ミニポート ドライバーが SR-IOV インターフェイスのみを使用するように有効になっている場合、ミニポート ドライバーは、このフラグを設定しないでください。 これらのインターフェイスを有効にする方法の詳細については、「 SR-IOV、VMQ、RSS 標準化 INF キーワードの処理」を参照してください。
 

NumQueues

ネットワーク アダプターがサポートする VM キューの数。

メモ ミニポート ドライバーが SR-IOV インターフェイスを使用するように有効になっている場合は、このメンバーを 0 に設定する必要があります。 SR-IOV インターフェイスの使用が有効になっている場合、NDIS は VM キューではなく受信キューと送信キューに仮想ポート (VPorts) を使用します。
 

SupportedQueueProperties

ネットワーク アダプターがサポートする VM キューのプロパティを指定するフラグのビットごとの OR。 次のフラグが定義されています。

NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED

ネットワーク アダプターは、受信キュー割り込みの生成に MSI-X を使用します。 このフラグは、VMQ または SR-IOV インターフェイスをサポートするミニポート ドライバーに必須です。

NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED

ネットワーク アダプターは、VM キューパケットフィルタリングをサポートするための最小要件を提供します。

ミニポート ドライバーは、VMQ または SR-IOV インターフェイスの使用が有効になっている場合は、このフラグを設定する必要があります。

VM キュー パケット フィルター処理の VMQ 要件の詳細については、「 VMQ フィルターの設定とクリア」を参照してください。

VM キュー パケット フィルタリングの SR-IOV 要件の詳細については、「 仮想ポートでの受信フィルターの設定」を参照してください。

NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED

ネットワーク アダプターは、受信したパケットを先読みオフセットで分割する VM キューをサポートします。 このオフセットは、要求された先読みサイズ以上です。 ネットワーク アダプターは DMA を使用して、先読みデータと先読み後データを個別の共有メモリ セグメントに転送します。

メモ NDIS 6.30 以降では、パケット データを個別の先読みバッファーに分割することはサポートされなくなりました。 このバージョンの NDIS をサポートするミニポート ドライバーは、このフラグを設定しないでください。
 

NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED

ネットワーク アダプターでは、次のいずれかのプロセッサ アフィニティ属性を動的に変更する機能がサポートされています。

  • VMQ インターフェイス内の VM キューのプロセッサ アフィニティ。 プロセッサ アフィニティは、 OID_RECEIVE_FILTER_QUEUE_PARAMETERSの OID セット要求によって変更されます。
  • SR-IOV インターフェイスで作成され、ネットワーク アダプターの PCI Express (PCIe) 物理機能 (PF) に接続されている、既定以外の仮想ポート (VPort) のプロセッサ アフィニティ。 プロセッサ アフィニティは、 OID_NIC_SWITCH_VPORT_PARAMETERSの OID セット要求によって変更されます。
メモ このフラグは、NDIS 6.30 以降でサポートされています。 VMQ または SR-IOV インターフェイスをサポートするミニポート ドライバーは、このフラグを設定する必要があります。
 

NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED

ネットワーク アダプターは、次のいずれかの受信パケットの割り込み合体をサポートします。

  • VMQ インターフェイス内の複数の VM キュー。
  • SR-IOV インターフェイスで PF に接続されている複数の VPort。
このフラグが設定されている場合、ネットワーク アダプターは、同じプロセッサ アフィニティを持つ VM キューまたは VPort の受信割り込みを結合する必要があります。
メモ このフラグは、NDIS 6.30 以降でサポートされています。 VMQ または SR-IOV インターフェイスをサポートするミニポート ドライバーは、このフラグを設定する必要があります。
 

NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE

使用可能な VM キューの数が、負荷分散フェールオーバー (LBFO) チームのメンバーから使用可能な最小キュー数であることを示します。 このフラグは、LBFO フィルターにのみ適用されます。 このフラグは、ミニポートには設定されていません。

NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE

使用可能な VM キューの数が、LBFO チームのすべてのメンバーから使用可能なすべてのキューの合計であることを示します。 このフラグは、LBFO フィルターにのみ適用されます。 このフラグは、ミニポートには設定されていません。

NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE

ネットワーク アダプターは、NDIS パケット合体をサポートしています。 パケット結合は、ネットワーク アダプターの既定の受信キューでのみサポートされます。 この受信キューには、NDIS_DEFAULT_RECEIVE_QUEUE_IDの識別子があります。

メモ このフラグは、NDIS 6.30 以降でサポートされています。
 

SupportedFilterTests

ミニポート ドライバーがサポートするテスト操作を指定するフラグのビットごとの OR。 次のフラグが定義されています。

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED

ネットワーク アダプターは、選択したヘッダー フィールドのテストをサポートして、指定された値と等しいかどうかを判断します。

メモ ミニポート ドライバーが VMQ または SR-IOV インターフェイスをサポートしている場合は、このフラグを設定する必要があります。
 

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED

ネットワーク アダプターは、選択したヘッダー フィールドのマスク (つまり、ビットごとの AND) をサポートして、結果が指定した値と等しいかどうかを判断します。

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED

ネットワーク アダプターは、選択したヘッダー フィールドのテストをサポートして、指定した値と等しくないかどうかを判断します。

メモ このフラグは、NDIS 6.30 以降でサポートされています。
 

SupportedHeaders

ミニポート ドライバーが検査できるネットワーク パケット ヘッダーの種類を指定するフラグのビットごとの OR。 次のフラグが定義されています。

NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED

ネットワーク アダプターは、ネットワーク パケットのメディア アクセス制御 (MAC) ヘッダーを検査できます。 SupportedMacHeaderFields メンバーは、検査できる MAC ヘッダーのさまざまなフィールドを定義します。

NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED

ネットワーク アダプターは、ネットワーク パケットのアドレス解決プロトコル (ARP) ヘッダーを検査できます。 SupportedArpHeaderFields メンバーは、検査できる ARP ヘッダーのさまざまなフィールドを定義します。

メモ このフラグは、NDIS 6.30 以降でサポートされています。
 

NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED

ネットワーク アダプターは、ネットワーク パケットの IP バージョン 4 (IPv4) ヘッダーを検査できます。 SupportedIPv4HeaderFields メンバーは、検査できる IPv4 ヘッダーのさまざまなフィールドを定義します。

メモ このフラグは、NDIS 6.30 以降でサポートされています。
 

NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED

ネットワーク アダプターは、ネットワーク パケットの IP バージョン 6 (IPv6) ヘッダーを検査できます。 SupportedIPv6HeaderFields メンバーは、検査できる IPv6 ヘッダーのさまざまなフィールドを定義します。

メモ このフラグは、NDIS 6.30 以降でサポートされています。
 

NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED

ネットワーク アダプターは、ネットワーク パケットのユーザー データグラム プロトコル (UDP) ヘッダーを検査できます。 SupportedIPv6HeaderFields メンバーは、検査できる UDP ヘッダーのさまざまなフィールドを定義します。

メモ このフラグは、NDIS 6.30 以降でサポートされています。
 

SupportedMacHeaderFields

ミニポート ドライバーが検査できる MAC ヘッダー フィールドの種類を指定するフラグのビットごとの OR。 次のフラグが定義されています。

NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED

ネットワーク アダプターは、MAC ヘッダーの宛先 MAC アドレスに基づく検査とフィルター処理をサポートします。

メモ NDIS 6.30 以降では、VMQ または SR-IOV インターフェイスをサポートするミニポート ドライバーは、このフラグを設定する必要があります。
 

NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED

ネットワーク アダプターでは、MAC ヘッダーのソース MAC アドレスに基づく検査とフィルター処理がサポートされています。

NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED

ネットワーク アダプターは、MAC ヘッダーの EtherType 識別子に基づく検査とフィルター処理をサポートします。 たとえば、IPv4 パケットの EtherType 識別子は0x0800。

NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED

ネットワーク アダプターは、MAC ヘッダーの VLAN 識別子に基づく検査とフィルター処理をサポートします。

メモ NDIS 6.30 以降では、このフラグは省略可能です。 ミニポート ドライバーでこのフラグが設定されていない場合、ネットワーク アダプターは、指定された MAC アドレス フィールドを検査してフィルター処理する必要があります。 受信パケットに VLAN タグが存在する場合、ネットワーク アダプターはパケット データから VLAN タグを削除する必要があります。 ミニポート ドライバーは、パケットのNET_BUFFER_LIST構造に関連付けられている NDIS_NET_BUFFER_LIST_8021Q_INFO 構造体に VLAN タグを配置 する 必要があります。
 

NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED

ネットワーク アダプターでは、MAC ヘッダーの優先度タグに基づく検査とフィルター処理がサポートされています。

NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED

ネットワーク アダプターは、802.3 MAC ヘッダーの IEEE 802.2 サブネットワーク アクセス プロトコル (SNAP) ヘッダーのパケットの種類フィールドに基づく検査とフィルター処理をサポートしています。

メモ このフラグは、NDIS 6.30 以降でサポートされています。
 

MaxMacHeaderFilters

ミニポート ドライバーがサポートする MAC ヘッダー フィルターの最大数。

MaxQueueGroups

このメンバーは NDIS 用に予約されています。

MaxQueuesPerQueueGroup

このメンバーは NDIS 用に予約されています。

MinLookaheadSplitSize

ネットワーク アダプターが先読みパケット バッファーに対してサポートする最小サイズ (バイト単位)。

メモ NDIS 6.30 以降では、パケット データを個別の先読みバッファーに分割することはサポートされなくなりました。 このバージョンの NDIS をサポートするミニポート ドライバーは、このメンバーを 0 に設定する必要があります。
 

MaxLookaheadSplitSize

ネットワーク アダプターが先読みパケット バッファーに対してサポートする最大サイズ (バイト単位)。

メモ NDIS 6.30 以降では、パケット データを個別の先読みバッファーに分割することはサポートされなくなりました。 このバージョンの NDIS をサポートするミニポート ドライバーは、このメンバーを 0 に設定する必要があります。
 

SupportedARPHeaderFields

ミニポート ドライバーが検査できる ARP ヘッダー フィールドの種類を指定するフラグのビットごとの OR。 次のフラグが定義されています。

NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED

ネットワーク アダプターは、ARP 操作フィールドでの受信フィルター処理をサポートします。

NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED

ネットワーク アダプターは、ARP ソース プロトコル アドレス (SPA) フィールドでの受信フィルター処理をサポートします。

NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED

ネットワーク アダプターでは、ARP ターゲット プロトコル アドレス (TPA) フィールドでの受信フィルター処理がサポートされています。

SupportedIPv4HeaderFields

ミニポート ドライバーが検査できる IPv4 ヘッダー フィールドの種類を指定するフラグのビットごとの OR。 次のフラグが定義されています。

NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED

ネットワーク アダプターは、IPv4 プロトコル フィールドでの受信フィルター処理をサポートします。

SupportedIPv6HeaderFields

ミニポート ドライバーが検査できる IPv6 ヘッダー フィールドの種類を指定するフラグのビットごとの OR。 次のフラグが定義されています。

NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED

ネットワーク アダプターは、IPv6 プロトコル フィールドでの受信フィルター処理をサポートしています。

SupportedUdpHeaderFields

ミニポート ドライバーが検査できる IPv6 ヘッダー フィールドの種類を指定するフラグのビットごとの OR。 次のフラグが定義されています。

NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED

ネットワーク アダプターは、UDP 宛先ポート フィールドでの受信フィルター処理をサポートします。

メモ 受信した UDP パケットに IPv4 オプションまたは IPv6 拡張ヘッダーが含まれている場合、ネットワーク アダプターは受信したパケットを自動的に削除し、UDP フィルター テストに失敗したかのように扱うことができます。
 

MaxFieldTestsPerPacketCoalescingFilter

1 つのパケット結合フィルターに指定できるパケット ヘッダー フィールドのテストの最大数。 パケット結合の詳細については、「 NDIS パケット結合」を参照してください。

メモ パケット結合をサポートするネットワーク アダプターでは、1 つのパケット結合フィルターに指定できる 5 つ以上のパケット ヘッダー フィールドをサポートする必要があります。 アダプターがパケット結合をサポートしていない場合、ミニポート ドライバーは、この値を 0 に設定する必要があります。
 

MaxPacketCoalescingFilters

ネットワーク アダプターでサポートされているパケット結合受信フィルターの最大数。

メモ パケット結合をサポートするネットワーク アダプターは、10 個以上のパケット結合フィルターをサポートする必要があります。 アダプターがパケット結合をサポートしていない場合、ミニポート ドライバーは、この値を 0 に設定する必要があります。
 

NdisReserved

予約済み。 0 に設定されます。

注釈

NDIS_RECEIVE_FILTER_CAPABILITIES構造体は、 の ReceiveFilterCapabilities メンバーで使用されます。 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES NDIS_FILTER_ATTACH_PARAMETERSNDIS_BIND_PARAMETERS 構造体、および の戻り値の結果 OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES OID クエリ。

NDIS_RECEIVE_FILTER_CAPABILITIES構造体のメンバーとフラグの設定の多くは、ミニポート ドライバーが VMQ または SR-IOV インターフェイスの使用を有効にしている場合にのみ有効です。 ミニポート ドライバーは、標準化された INF キーワードを使用してこれらのインターフェイスを使用することが有効になっています。 詳細については、「 SR-IOV、VMQ、RSS 標準化 INF キーワードの処理」を参照してください。

要件

要件
サポートされている最小のクライアント NDIS 6.20 以降でサポートされています。
Header ntddndis.h (Ndis.h を含む)

こちらもご覧ください

NDIS_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_RECEIVE_QUEUE_INFO

NDIS_RECEIVE_QUEUE_PARAMETERS

OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES