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 큐 대신 수신 및 전송 큐에 VPort(가상 포트)를 사용합니다.
 

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

네트워크 어댑터는 lookahead 오프셋에서 수신된 패킷을 분할하는 VM 큐를 지원합니다. 이 오프셋은 요청된 lookahead 크기와 같거나 큽니다. 네트워크 어댑터는 DMA를 사용하여 lookahead 및 사후 조회 데이터를 별도의 공유 메모리 세그먼트로 전송합니다.

참고 NDIS 6.30부터 패킷 데이터를 별도의 lookahead 버퍼로 분할하는 것은 더 이상 지원되지 않습니다. 이 버전의 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(부하 분산 장애 조치(failover) 팀의 구성원에서 사용할 수 있는 최소 큐 수임을 나타냅니다. 이 플래그는 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 태그가 수신된 패킷에 있는 경우 네트워크 어댑터는 패킷 데이터에서 제거해야 합니다. 미니포트 드라이버는 패킷의 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

네트워크 어댑터가 lookahead 패킷 버퍼를 지원하는 최소 크기(바이트)입니다.

참고 NDIS 6.30부터 패킷 데이터를 별도의 lookahead 버퍼로 분할하는 것은 더 이상 지원되지 않습니다. 이 버전의 NDIS를 지원하는 미니포트 드라이버는 이 멤버를 0으로 설정해야 합니다.
 

MaxLookaheadSplitSize

네트워크 어댑터가 lookahead 패킷 버퍼를 지원하는 최대 크기(바이트)입니다.

참고 NDIS 6.30부터 패킷 데이터를 별도의 lookahead 버퍼로 분할하는 것은 더 이상 지원되지 않습니다. 이 버전의 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

단일 패킷 병합 필터에 대해 지정할 수 있는 패킷 헤더 필드의 최대 테스트 수입니다. 패킷 병합에 대한 자세한 내용은 NDIS 패킷 병합을 참조하세요.

참고 패킷 병합을 지원하는 네트워크 어댑터는 단일 패킷 병합 필터에 대해 지정할 수 있는 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 이상에서 지원됩니다.
머리글 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