NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE 콜백 함수(ndis.h)

SetNetBufferListSource 함수는 NET_BUFFER_LIST 구조로 지정된 패킷에 대한 Hyper-V 확장 가능한 스위치 원본 포트 식별자 및 네트워크 어댑터 인덱스를 설정합니다.

구문

NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE NdisSwitchSetNetBufferListSource;

NDIS_STATUS NdisSwitchSetNetBufferListSource(
  [in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
       PNET_BUFFER_LIST NetBufferList,
  [in] NDIS_SWITCH_PORT_ID PortId,
  [in] NDIS_SWITCH_NIC_INDEX NicIndex
)
{...}

매개 변수

[in] NdisSwitchContext

Hyper-V 확장 가능 스위치 확장이 연결된 확장 가능한 스위치 모듈의 핸들을 포함하는 NDIS_SWITCH_CONTEXT 값입니다. 확장이 NdisFGetOptionalSwitchHandlers를 호출하면 이 핸들은 NdisSwitchContext 매개 변수를 통해 반환됩니다.

NetBufferList

단일 패킷에 대한 NET_BUFFER_LIST 구조체에 대한 포인터입니다.

참고 이 구조체에는 AllocateNetBufferListForwardingContext 함수를 호출하여 이전에 할당된 확장 가능한 전환 전달 컨텍스트가 포함되어야 합니다. 확장 가능한 스위치 전달 컨텍스트에 대한 자세한 내용은 Hyper-V 확장 가능한 전환 전달 컨텍스트를 참조하세요.
 

[in] PortId

확장 가능한 스위치에서 원본 포트의 고유 식별자를 지정하는 NDIS_SWITCH_PORT_ID 값입니다.

[in] NicIndex

PortId 매개 변수로 지정된 확장 가능한 스위치 포트에 연결된 네트워크 어댑터의 인덱스를 지정하는 NDIS_SWITCH_NIC_INDEX 값입니다.

NDIS_SWITCH_NIC_INDEX 값에 대한 자세한 내용은 네트워크 어댑터 인덱스 값을 참조하세요.

참고 이 매개 변수는 연결된 상태에 있는 네트워크 어댑터의 인덱스 값을 지정해야 합니다. 생성되거나 연결이 끊긴 상태인 네트워크 어댑터의 인덱스 값을 지정할 수 없습니다. 네트워크 연결 상태에 대한 자세한 내용은 Hyper-V 확장 가능한 스위치 포트 및 네트워크 어댑터 상태를 참조하세요.
 

반환 값

호출이 성공하면 함수는 NDIS_STATUS_SUCCESS 반환합니다. 그렇지 않으면 Ndis.h에 정의된 NDIS_STATUS_Xxx 오류 코드를 반환합니다.

설명

확장 가능한 스위치 확장은 SetNetBufferListSource 함수를 호출하여 패킷의 NET_BUFFER_LIST 구조에서 원본 포트 식별자 및 네트워크 어댑터 인덱스를 설정합니다. 확장은 다음 유형의 패킷에 대해 이 작업을 수행합니다.

  • 확장이 송신 또는 수신 작업에 할당한 새 패킷입니다.
    참고 확장에서 할당된 패킷에 대해 SetNetBufferListSource 를 호출하기 전에 AllocateNetBufferListForwardingContext를 호출해야 합니다.
     
  • 확장이 필터링 중인 원래 패킷에서 복제한 중복된 패킷입니다. 확장은 NdisAllocateCloneNetBufferList를 호출하여 패킷을 복제합니다.
두 경우 모두 새 패킷 또는 중복 패킷의 원본 포트 식별자는 NDIS_SWITCH_DEFAULT_PORT_ID 설정되고 원본 네트워크 어댑터 인덱스는 NDIS_SWITCH_DEFAULT_NIC_INDEX. 확장은 SetNetBufferListSource 함수를 호출하여 패킷의 NET_BUFFER_LIST 구조에서 원본 포트 식별자 및 네트워크 어댑터 인덱스를 변경합니다.

예를 들어 NDIS_SWITCH_DEFAULT_PORT_ID 원본 포트 식별자가 있는 패킷은 신뢰할 수 있으며 확장 가능한 많은 스위치 포트 정책을 무시합니다. 이러한 정책에는 ACL(액세스 제어 목록) 및 QoS(서비스 품질)가 포함됩니다. 확장에서 패킷에 대한 기본이 아닌 원본 포트를 지정하는 경우 해당 포트에 대한 정책을 패킷에 적용할 수 있습니다.

참고NDIS_SWITCH_DEFAULT_PORT_ID 원본 포트 식별자가 있는 패킷은 신뢰할 수 있으므로 확장은 패킷 트래픽이 시작될 때 이 원본 포트 식별자를 매우 신중하게 사용해야 합니다. 원본 포트에 NDIS_SWITCH_DEFAULT_PORT_ID 사용하는 것이 좋습니다. 자세한 내용은 Hyper-V 확장 가능한 스위치 원본 포트 데이터 관리를 참조하세요.
 
패킷 보내기 및 수신 작업에 대한 자세한 내용은 모듈 보내기 및 받기 작업 필터링을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.30 이상에서 지원됩니다.
대상 플랫폼 데스크톱
머리글 ndis.h(Ndis.h 포함)
IRQL <= DISPATCH_LEVEL

추가 정보

AllocateNetBufferListForwardingContext

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisFGetOptionalSwitchHandlers