다음을 통해 공유


NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조체(ndis.h)

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조체는 패킷에 대한 Hyper-V 확장 가능한 스위치 대상 포트의 배열을 지정합니다. 배열의 각 요소는 NDIS_SWITCH_PORT_DESTINATION 구조체로 서식이 지정됩니다.

이 정보는 패킷의 NET_BUFFER_LIST 구조체의 OOB(out-of-band) 데이터에 포함되어 있습니다.

구문

typedef struct _NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY {
  NDIS_OBJECT_HEADER Header;
  UINT32             ElementSize;
  UINT32             NumElements;
  UINT32             NumDestinations;
  PVOID              FirstElement;
} NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY, *PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY;

멤버

Header

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조체의 형식, 수정 버전 및 크기입니다. 이 멤버는 NDIS_OBJECT_HEADER 구조체로 형식이 지정됩니다.

헤더Type 멤버를 NDIS_OBJECT_TYPE_DEFAULT 설정해야 합니다. NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조체의 버전을 지정하려면 HeaderRevision 멤버를 다음 값으로 설정해야 합니다.

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

NDIS 6.30 이상에 대한 원래 버전입니다.

Size 멤버를 NDIS_SIZEOF_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1 설정합니다.

ElementSize

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조체를 따르는 각 NDIS_SWITCH_PORT_DESTINATION 요소의 크기(바이트)를 지정하는 ULONG 값입니다.

NumElements

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조체의 총 NDIS_SWITCH_PORT_DESTINATION 요소 수를 지정하는 ULONG 값입니다.

NumElements 멤버의 값은 현재 사용되는 NDIS_SWITCH_PORT_DESTINATION 요소 수(NumDestinations 멤버로 지정됨)와 새 대상 포트에 사용할 수 있는 요소 수를 지정합니다. NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조에서 사용되지 않는 NDIS_SWITCH_PORT_DESTINATION 요소의 수는 (NumElementsNumDestinations - )에 의해 계산됩니다.

NumDestinations

포트 대상을 지정하는 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조체의 NDIS_SWITCH_PORT_DESTINATION 요소 수를 지정하는 ULONG 값입니다.

참고NumElements 가 0으로 설정된 경우 이 멤버는 무시됩니다.
 

FirstElement

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조체와 모든 요소가 포함된 버퍼의 첫 번째 NDIS_SWITCH_PORT_DESTINATION 요소에 대한 포인터입니다.

설명

확장 가능한 스위치 확장은 패킷의 NET_BUFFER_LIST 구조에서 대상 포트를 사용하여 다음을 수행할 수 있습니다.

  • 패킷이 전달될 확장 가능한 스위치에서 현재 대상 포트를 쿼리합니다.

    확장 가능한 스위치 확장은 GetNetBufferListDestinations 함수를 호출하여 패킷에 대한 포트 대상의 배열을 가져옵니다. GetNetBufferListDestinations는 Destinations 매개 변수의 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조에 대한 포인터 를 반환합니다 .

    자세한 내용은 패킷의 확장 가능한 스위치 대상 포트 데이터 쿼리를 참조하세요.

  • 패킷의 대상 포트를 추가하거나 수정합니다.

    패킷에 대한 현재 대상 포트를 쿼리한 후 확장 가능한 스위치 확장은 다음을 수행할 수 있습니다.

    • 전달 확장은 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 구조에 새 대상 포트를 추가할 수 있습니다.
    • 필터링 또는 전달 확장 프로그램은 대상 포트에 대한 NDIS_SWITCH_PORT_DESTINATION 구조 내의 데이터를 수정할 수 있습니다.
      참고 필터링 확장은 이 구조체의 IsExcluded 멤버만 변경할 수 있습니다. 전달 확장은 PreserveVLANPreservePriority 멤버를 변경할 수도 있습니다.
       
    확장에서 포트 대상을 추가하거나 수정하는 경우 UpdateNetBufferListDestinations 를 호출하여 대상 포트에 대한 변경 내용을 NET_BUFFER_LIST 구조의 패킷의 OOB 데이터에 커밋해야 합니다.

    자세한 내용은 Hyper-V 확장 가능 스위치 대상 포트 데이터 관리를 참조하세요.

확장 가능한 스위치 확장은 NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX 매크로를 사용하여 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY배열의NDIS_SWITCH_PORT_DESTINATION 요소에 액세스할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.30 이상에서 지원됩니다.
머리글 ndis.h(Ndis.h 포함)

추가 정보

패킷에 확장 가능한 스위치 대상 포트 데이터 추가

확장 가능한 스위치 대상 포트로 패킷 배달 제외

전달 확장

GetNetBufferListDestinations

하이브리드 전달

NDIS_OBJECT_HEADER

NDIS_SWITCH_PORT_DESTINATION

NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX

NET_BUFFER_LIST

Hyper-V 확장 가능 스위치 개요

UpdateNetBufferListDestinations