다음을 통해 공유


NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION 콜백 함수(ndis.h)

AddNetBufferListDestination 함수는 NET_BUFFER_LIST 구조로 지정된 패킷에 대한 단일 대상 포트를 추가합니다.

통사론

NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION NdisSwitchAddNetBufferListDestination;

NDIS_STATUS NdisSwitchAddNetBufferListDestination(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST NetBufferList,
  [in]      PNDIS_SWITCH_PORT_DESTINATION Destination
)
{...}

매개 변수

[in] NdisSwitchContext

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

[in, out] NetBufferList

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

참고 이 구조에는 확장 가능한 스위치 전달 컨텍스트가 포함되어야 합니다. 확장이 패킷을 만들거나 복제한 경우 AllocateNetBufferListForwardingContext 함수를 호출하여 이전에 이 구조를 할당해야 합니다.
 

[in] Destination

NDIS_SWITCH_PORT_DESTINATION 구조체에 대한 포인터입니다. 이 구조는 패킷이 전달될 대상 확장 가능 스위치 포트를 지정합니다.

반환 값

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

발언

전달 확장 가능한 스위치 확장은 AddNetBufferListDestination 호출하여 패킷에 대한 확장 가능한 단일 스위치 대상 포트를 정의합니다. 확장은 NDIS_SWITCH_PORT_DESTINATION 구조를 초기화하여 이 포트를 지정합니다. 확장은 Destination 매개 변수를 이 구조체에 대한 포인터로 설정합니다. 확장 가능한 스위치 대상 포트를 지정하는 방법에 대한 자세한 내용은 Hyper-V 확장 가능한 스위치 대상 포트 데이터관리를 참조하세요.

참고 성능상의 이유로 확장은 여러 대상 포트가 있는 AddNetBufferListDestination 패킷을 호출해서는 안 됩니다.
 
확장은 AddNetBufferListDestination호출하기 전에 다음 지침을 따라야 합니다.
  • 전달 확장 프로그램만 AddNetBufferListDestination 호출하여 패킷에 대한 대상 포트를 추가할 수 있습니다. 이러한 유형의 확장에 대한 자세한 내용은 전달 확장참조하세요.
  • 전달 확장이 하나의 대상 포트가 있는 패킷을 시작하는 경우 확장은 먼저 AllocateNetBufferListForwardingContext 함수를 호출해야 합니다. 이 함수는 패킷에 대해 확장 가능한 스위치 전달 컨텍스트를 할당합니다. 이 데이터에는 패킷에 대한 OOB(out-of-band) 정보 내에 확장 가능한 스위치 원본 및 대상 포트가 포함됩니다.

    이 컨텍스트에 대한 자세한 내용은 확장 가능한 스위치 전달 컨텍스트 Hyper-V 참조하세요.

  • 확장은 NDIS_SWITCH_PORT_DESTINATION 구조에서 대상 포트 정보를 수정한 후 AddNetBufferListDestination 호출하여 패킷의 NET_BUFFER_LIST 구조에 대한 변경 내용을 커밋합니다.
    참고 성능상의 이유로 확장은 UpdateNetBufferListDestinations 함수를 호출하여 패킷에 대한 변경 내용을 커밋해서는 안 됩니다.
     
참고 전달 확장에서 대상 포트에 대한 변경 내용을 전달 컨텍스트에 커밋한 후에는 대상 포트를 제거할 수 없으며 대상 포트의 NDIS_SWITCH_PORT_DESTINATION 구조의 IsExcluded 멤버만 변경할 수 있습니다. 자세한 내용은 확장 가능한 스위치 대상 포트 패킷 배달 제외참조하세요.
 

요구 사항

요구
지원되는 최소 클라이언트 NDIS 6.30 이상에서 지원됩니다.
대상 플랫폼 바탕 화면
헤더 ndis.h(Ndis.h 포함)
IRQL <= DISPATCH_LEVEL

참고 항목

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

UpdateNetBufferListDestinations