NDIS_RECEIVE_FILTER_CAPABILITIES 構造体 (ntddndis.h)
NDIS_RECEIVE_FILTER_CAPABILITIES構造体は、ネットワーク アダプターの受信フィルター機能を指定します。
NDIS 受信フィルターは、次の NDIS インターフェイスで使用されます。
-
NDIS パケット結合。 このインターフェイスで受信フィルターを使用する方法の詳細については、「 パケット結合受信フィルターの管理」を参照してください。
-
シングル ルート I/O 仮想化 (SR-IOV)。 このインターフェイスで受信フィルターを使用する方法の詳細については、「 仮想ポートでの受信フィルターの設定」を参照してください。
-
バーチャル マシン キュー (VMQ)。 このインターフェイスで受信フィルターを使用する方法の詳細については、「 VMQ フィルターの設定とクリア」を参照してください。
構文
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 フィルターを有効にすることを指定します。
NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED
NDIS パケット結合受信フィルターを有効にすることを指定します。
EnabledQueueTypes
有効になっている受信キューの種類を指定するフラグのビットごとの OR。 次のキューの種類のフラグが有効です。
NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED
仮想マシン (VM) キューが有効になっていることを指定します。 VM キューは、ミニポート ドライバーで VMQ インターフェイスの使用が有効になっている場合に使用されます。
NumQueues
ネットワーク アダプターがサポートする VM キューの数。
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_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_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED
ネットワーク アダプターは、次のいずれかの受信パケットの割り込み合体をサポートします。
- VMQ インターフェイス内の複数の VM キュー。
- SR-IOV インターフェイスで PF に接続されている複数の VPort。
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の識別子があります。
SupportedFilterTests
ミニポート ドライバーがサポートするテスト操作を指定するフラグのビットごとの OR。 次のフラグが定義されています。
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED
ネットワーク アダプターは、選択したヘッダー フィールドのテストをサポートして、指定された値と等しいかどうかを判断します。
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED
ネットワーク アダプターは、選択したヘッダー フィールドのマスク (つまり、ビットごとの AND) をサポートして、結果が指定した値と等しいかどうかを判断します。
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED
ネットワーク アダプターは、選択したヘッダー フィールドのテストをサポートして、指定した値と等しくないかどうかを判断します。
SupportedHeaders
ミニポート ドライバーが検査できるネットワーク パケット ヘッダーの種類を指定するフラグのビットごとの OR。 次のフラグが定義されています。
NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED
ネットワーク アダプターは、ネットワーク パケットのメディア アクセス制御 (MAC) ヘッダーを検査できます。 SupportedMacHeaderFields メンバーは、検査できる MAC ヘッダーのさまざまなフィールドを定義します。
NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED
ネットワーク アダプターは、ネットワーク パケットのアドレス解決プロトコル (ARP) ヘッダーを検査できます。 SupportedArpHeaderFields メンバーは、検査できる ARP ヘッダーのさまざまなフィールドを定義します。
NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED
ネットワーク アダプターは、ネットワーク パケットの IP バージョン 4 (IPv4) ヘッダーを検査できます。 SupportedIPv4HeaderFields メンバーは、検査できる IPv4 ヘッダーのさまざまなフィールドを定義します。
NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED
ネットワーク アダプターは、ネットワーク パケットの IP バージョン 6 (IPv6) ヘッダーを検査できます。 SupportedIPv6HeaderFields メンバーは、検査できる IPv6 ヘッダーのさまざまなフィールドを定義します。
NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED
ネットワーク アダプターは、ネットワーク パケットのユーザー データグラム プロトコル (UDP) ヘッダーを検査できます。 SupportedIPv6HeaderFields メンバーは、検査できる UDP ヘッダーのさまざまなフィールドを定義します。
SupportedMacHeaderFields
ミニポート ドライバーが検査できる MAC ヘッダー フィールドの種類を指定するフラグのビットごとの OR。 次のフラグが定義されています。
NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED
ネットワーク アダプターは、MAC ヘッダーの宛先 MAC アドレスに基づく検査とフィルター処理をサポートします。
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_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED
ネットワーク アダプターでは、MAC ヘッダーの優先度タグに基づく検査とフィルター処理がサポートされています。
NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED
ネットワーク アダプターは、802.3 MAC ヘッダーの IEEE 802.2 サブネットワーク アクセス プロトコル (SNAP) ヘッダーのパケットの種類フィールドに基づく検査とフィルター処理をサポートしています。
MaxMacHeaderFilters
ミニポート ドライバーがサポートする MAC ヘッダー フィルターの最大数。
MaxQueueGroups
このメンバーは NDIS 用に予約されています。
MaxQueuesPerQueueGroup
このメンバーは NDIS 用に予約されています。
MinLookaheadSplitSize
ネットワーク アダプターが先読みパケット バッファーに対してサポートする最小サイズ (バイト単位)。
MaxLookaheadSplitSize
ネットワーク アダプターが先読みパケット バッファーに対してサポートする最大サイズ (バイト単位)。
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 宛先ポート フィールドでの受信フィルター処理をサポートします。
MaxFieldTestsPerPacketCoalescingFilter
1 つのパケット結合フィルターに指定できるパケット ヘッダー フィールドのテストの最大数。 パケット結合の詳細については、「 NDIS パケット結合」を参照してください。
MaxPacketCoalescingFilters
ネットワーク アダプターでサポートされているパケット結合受信フィルターの最大数。
NdisReserved
予約済み。 0 に設定されます。
注釈
NDIS_RECEIVE_FILTER_CAPABILITIES構造体は、 の ReceiveFilterCapabilities メンバーで使用されます。 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES、 NDIS_FILTER_ATTACH_PARAMETERS、 NDIS_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_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES OID_RECEIVE_FILTER_HARDWARE_CAPABILITIESフィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示